iio: hid-sensor-attributes: Check sample_frequency/hysteresis write data legitimacy
authorSong Hongyan <hongyan.song@intel.com>
Thu, 3 Nov 2016 00:45:48 +0000 (00:45 +0000)
committerJonathan Cameron <jic23@kernel.org>
Sat, 5 Nov 2016 16:25:33 +0000 (16:25 +0000)
Neither sample frequency value nor hysteresis value can be set to be a
negative number, check and return "Invalid argument" if they are negative.

If not do this change, sample_frequency will be set into some unknown
value, read hysteresis value after write negative number will return
"Invalid argument".

Signed-off-by: Song Hongyan <hongyan.song@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/common/hid-sensors/hid-sensor-attributes.c

index dc33c1d..4509f84 100644 (file)
@@ -201,7 +201,7 @@ int hid_sensor_write_samp_freq_value(struct hid_sensor_common *st,
        int ret;
 
        if (val1 < 0 || val2 < 0)
-               ret = -EINVAL;
+               return -EINVAL;
 
        value = val1 * pow_10(6) + val2;
        if (value) {
@@ -250,6 +250,9 @@ int hid_sensor_write_raw_hyst_value(struct hid_sensor_common *st,
        s32 value;
        int ret;
 
+       if (val1 < 0 || val2 < 0)
+               return -EINVAL;
+
        value = convert_to_vtf_format(st->sensitivity.size,
                                st->sensitivity.unit_expo,
                                val1, val2);