[PATCH v2] iio: chemical: ags02ma: Check for short I2C reads
From: Nikhil Gautam
Date: Sat Oct 17 2026 - 05:51:57 EST
Check that the I2C receive operation transfers the expected number
of bytes before accessing the received data.
Return -EIO if the transfer is incomplete.
Fixes: d58013f39b30 ("iio: chemical: add support for Aosong AGS02MA")
Signed-off-by: Nikhil Gautam <nikhilgtr@xxxxxxxxx>
---
drivers/iio/chemical/ags02ma.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/iio/chemical/ags02ma.c b/drivers/iio/chemical/ags02ma.c
index 151178d4e8f4..2219965d044f 100644
--- a/drivers/iio/chemical/ags02ma.c
+++ b/drivers/iio/chemical/ags02ma.c
@@ -61,6 +61,12 @@ static int ags02ma_register_read(struct i2c_client *client, u8 reg, u16 delay,
return ret;
}
+ if (ret != sizeof(read_buffer)) {
+ dev_err(&client->dev,
+ "Short read from register 0x%x\n", reg);
+ return -EIO;
+ }
+
crc = crc8(ags02ma_crc8_table, (u8 *)&read_buffer.data,
sizeof(read_buffer.data), AGS02MA_CRC8_INIT);
if (crc != read_buffer.crc) {
--
2.39.5