[PATCH 04/11] iio: adc: rockchip_saradc: fix information leak in triggered buffer

From: Javier Carrasco
Date: Mon Nov 25 2024 - 16:30:38 EST


The 'data' local struct is used to push data to user space from a
triggered buffer, but it does not set values for inactive channels, as
it only uses iio_for_each_active_channel() to assign new values.

Initialize the struct to zero before using it to avoid pushing
uninitialized information to userspace.

Cc: stable@xxxxxxxxxxxxxxx
Fixes: 4e130dc7b413 ("iio: adc: rockchip_saradc: Add support iio buffers")
Signed-off-by: Javier Carrasco <javier.carrasco.cruz@xxxxxxxxx>
---
drivers/iio/adc/rockchip_saradc.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/iio/adc/rockchip_saradc.c b/drivers/iio/adc/rockchip_saradc.c
index 240cfa391674..dfd47a6e1f4a 100644
--- a/drivers/iio/adc/rockchip_saradc.c
+++ b/drivers/iio/adc/rockchip_saradc.c
@@ -368,6 +368,8 @@ static irqreturn_t rockchip_saradc_trigger_handler(int irq, void *p)
int ret;
int i, j = 0;

+ memset(&data, 0, sizeof(data));
+
mutex_lock(&info->lock);

iio_for_each_active_channel(i_dev, i) {

--
2.43.0