Commit 076c4d18 authored by Marek Vasut's avatar Marek Vasut Committed by Jonathan Cameron
Browse files

iio: light: noa1305: Fix up integration time look up



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: 025f23cf ("iio: light: noa1305: Make integration time configurable")
Reported-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
Suggested-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: default avatarMarek Vasut <marex@denx.de>
Link: https://patch.msgid.link/20240814191946.81386-1-marex@denx.de


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent c524fbca
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);