summaryrefslogtreecommitdiff
path: root/drivers/staging/iio/industrialio-core.c
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2014-01-22 18:41:04 +0100
committerStefan Agner <stefan.agner@toradex.com>2014-01-22 18:48:19 +0100
commit139f77a7efd40d2eb2a4a8b2d8041b80dd3965b8 (patch)
tree125e88e64aa6f6ab96cbcbad0a206c081c6458b5 /drivers/staging/iio/industrialio-core.c
parent1d3625dd9903bcc59e2df56836565ebb682948c1 (diff)
Check null pointers for sysfs calls
When grepping through sysfs, grep tries to read all sysfs files which are available. Some of them lead to error due to null pointers. Therefor check for null pointers before using them.
Diffstat (limited to 'drivers/staging/iio/industrialio-core.c')
-rw-r--r--drivers/staging/iio/industrialio-core.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c
index 19819e7578c6..fd812c343e81 100644
--- a/drivers/staging/iio/industrialio-core.c
+++ b/drivers/staging/iio/industrialio-core.c
@@ -860,7 +860,10 @@ static ssize_t iio_ev_state_show(struct device *dev,
{
struct iio_dev *indio_dev = dev_get_drvdata(dev);
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
- int val = indio_dev->info->read_event_config(indio_dev,
+ int val = -ENODEV;
+
+ if (indio_dev->info != NULL && indio_dev->info->read_event_config != NULL)
+ val = indio_dev->info->read_event_config(indio_dev,
this_attr->address);
if (val < 0)
@@ -875,9 +878,10 @@ static ssize_t iio_ev_value_show(struct device *dev,
{
struct iio_dev *indio_dev = dev_get_drvdata(dev);
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
- int val, ret;
+ int val, ret = -ENODEV;
- ret = indio_dev->info->read_event_value(indio_dev,
+ if (indio_dev->info != NULL && indio_dev->info->read_event_config != NULL)
+ ret = indio_dev->info->read_event_value(indio_dev,
this_attr->address, &val);
if (ret < 0)
return ret;