iio: adc: tsc2046: fix memory corruption by preventing array overflow
authorOleksij Rempel <o.rempel@pengutronix.de>
Fri, 7 Jan 2022 08:14:01 +0000 (09:14 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 23 Jan 2022 18:23:48 +0000 (18:23 +0000)
commitb7a78a8adaa8849c02f174d707aead0f85dca0da
tree2e4a56436e4155f532f212f978d89f79599ab6e0
parente783362eb54cd99b2cac8b3a9aeac942e6f6ac07
iio: adc: tsc2046: fix memory corruption by preventing array overflow

On one side we have indio_dev->num_channels includes all physical channels +
timestamp channel. On other side we have an array allocated only for
physical channels. So, fix memory corruption by ARRAY_SIZE() instead of
num_channels variable.

Note the first case is a cleanup rather than a fix as the software
timestamp channel bit in active_scanmask is never set by the IIO core.

Fixes: 9374e8f5a38d ("iio: adc: add ADC driver for the TI TSC2046 controller")
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Link: https://lore.kernel.org/r/20220107081401.2816357-1-o.rempel@pengutronix.de
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ti-tsc2046.c