]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: gyro: adis16260: fix division by zero in write_raw
authorAntoniu Miclaus <antoniu.miclaus@analog.com>
Tue, 31 Mar 2026 10:13:00 +0000 (13:13 +0300)
committerJonathan Cameron <jic23@kernel.org>
Tue, 28 Apr 2026 15:36:09 +0000 (16:36 +0100)
Add a validation check for the sampling frequency value before using it
as a divisor. A user writing zero to the sampling_frequency sysfs
attribute triggers a division by zero in the kernel.

Fixes: 089a41985c6c ("staging: iio: adis16260 digital gyro driver")
Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/gyro/adis16260.c

index 586e6cfa14a95437ea38197d4213566cc652ef4d..91b9c5f18ec4021c49080d09b10aad6a59594cf0 100644 (file)
@@ -287,6 +287,9 @@ static int adis16260_write_raw(struct iio_dev *indio_dev,
                addr = adis16260_addresses[chan->scan_index][1];
                return adis_write_reg_16(adis, addr, val);
        case IIO_CHAN_INFO_SAMP_FREQ:
+               if (val <= 0)
+                       return -EINVAL;
+
                if (spi_get_device_id(adis->spi)->driver_data)
                        t = 256 / val;
                else