]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: light: noa1305: Fix up integration time look up
authorMarek Vasut <marex@denx.de>
Wed, 14 Aug 2024 19:19:09 +0000 (21:19 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 17 Aug 2024 14:37:37 +0000 (15:37 +0100)
The current code is always iterating over two fields in the
noa1305_int_time_available array. Fix iteration limit, which
has to be halved to avoid out of bounds access in case the
value that is being looked up is not in the array.

Fixes: 025f23cfebad ("iio: light: noa1305: Make integration time configurable")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Suggested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Link: https://patch.msgid.link/20240814191946.81386-1-marex@denx.de
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/light/noa1305.c

index da83425fd9100233b656140189f071751e907d0c..25f63da70297e1af77628a7fc5cab66773ff7276 100644 (file)
@@ -197,7 +197,7 @@ static int noa1305_write_raw(struct iio_dev *indio_dev,
                return -EINVAL;
 
        /* Look up integration time register settings and write it if found. */
-       for (i = 0; i < ARRAY_SIZE(noa1305_int_time_available); i++)
+       for (i = 0; i < ARRAY_SIZE(noa1305_int_time_available) / 2; i++)
                if (noa1305_int_time_available[2 * i + 1] == val2)
                        return regmap_write(priv->regmap, NOA1305_REG_INTEGRATION_TIME, i);