]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
iio:gyro: adis16136: divide by zero in write_frequency()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 27 Nov 2012 07:24:00 +0000 (07:24 +0000)
committerJonathan Cameron <jic23@kernel.org>
Fri, 30 Nov 2012 13:09:22 +0000 (13:09 +0000)
It's slightly cleaner to use kstrtouint() because we pass unsigned ints
to adis16136_set_freq().  On 64 bit systems, if the user passed LONG_MIN
then it we would get past the test against zero but crash in
adis16136_set_freq() because we truncate the high bits away.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-By: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/gyro/adis16136.c

index 05486dfd721b883ecb4c97e74664d55cefbc5ec7..b4ee3393b772326ec1241385a7c8a32a630e6b11 100644 (file)
@@ -203,10 +203,10 @@ static ssize_t adis16136_write_frequency(struct device *dev,
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct adis16136 *adis16136 = iio_priv(indio_dev);
-       long val;
+       unsigned int val;
        int ret;
 
-       ret = kstrtol(buf, 10, &val);
+       ret = kstrtouint(buf, 10, &val);
        if (ret)
                return ret;