diff options
| author | Irina Tirdea <irina.tirdea@intel.com> | 2015-04-13 11:40:49 -0400 |
|---|---|---|
| committer | Jonathan Cameron <jic23@kernel.org> | 2015-04-26 14:43:08 -0400 |
| commit | 1d93353da536d3403ac291dc96070f434f6cf285 (patch) | |
| tree | 356164fad3cc6ff85d1d47332efabcd220570539 | |
| parent | ae2ec9597c9329fdf503af264966bc7e421daa58 (diff) | |
iio: accel: mma9553: check input value for activity period
When setting the activity period, the value introduced by
the user in sysfs is not checked for validity.
Add a boundary check so that only allowed values are
reported as successfully written to device.
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Reported-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
| -rw-r--r-- | drivers/iio/accel/mma9553.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/iio/accel/mma9553.c b/drivers/iio/accel/mma9553.c index 1a256055a6f7..365a109aaaef 100644 --- a/drivers/iio/accel/mma9553.c +++ b/drivers/iio/accel/mma9553.c | |||
| @@ -54,6 +54,7 @@ | |||
| 54 | #define MMA9553_MASK_CONF_STEPCOALESCE GENMASK(7, 0) | 54 | #define MMA9553_MASK_CONF_STEPCOALESCE GENMASK(7, 0) |
| 55 | 55 | ||
| 56 | #define MMA9553_REG_CONF_ACTTHD 0x0E | 56 | #define MMA9553_REG_CONF_ACTTHD 0x0E |
| 57 | #define MMA9553_MAX_ACTTHD GENMASK(15, 0) | ||
| 57 | 58 | ||
| 58 | /* Pedometer status registers (R-only) */ | 59 | /* Pedometer status registers (R-only) */ |
| 59 | #define MMA9553_REG_STATUS 0x00 | 60 | #define MMA9553_REG_STATUS 0x00 |
| @@ -869,6 +870,9 @@ static int mma9553_write_event_value(struct iio_dev *indio_dev, | |||
| 869 | case IIO_EV_INFO_PERIOD: | 870 | case IIO_EV_INFO_PERIOD: |
| 870 | switch (chan->type) { | 871 | switch (chan->type) { |
| 871 | case IIO_ACTIVITY: | 872 | case IIO_ACTIVITY: |
| 873 | if (val < 0 || val > MMA9553_ACTIVITY_THD_TO_SEC( | ||
| 874 | MMA9553_MAX_ACTTHD)) | ||
| 875 | return -EINVAL; | ||
| 872 | mutex_lock(&data->mutex); | 876 | mutex_lock(&data->mutex); |
| 873 | ret = mma9553_set_config(data, MMA9553_REG_CONF_ACTTHD, | 877 | ret = mma9553_set_config(data, MMA9553_REG_CONF_ACTTHD, |
| 874 | &data->conf.actthd, | 878 | &data->conf.actthd, |
