Skip to content

Commit a6e04f0

Browse files
akhilr-nvAndi Shyti
authored andcommitted
i2c: tegra: check msg length in SMBUS block read
For SMBUS block read, do not continue to read if the message length passed from the device is '0' or greater than the maximum allowed bytes. Signed-off-by: Akhil R <akhilrajeev@nvidia.com> Acked-by: Thierry Reding <treding@nvidia.com> Link: https://lore.kernel.org/r/20250424053320.19211-1-akhilrajeev@nvidia.com Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
1 parent 090c3a4 commit a6e04f0

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

drivers/i2c/busses/i2c-tegra.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1395,6 +1395,11 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
13951395
ret = tegra_i2c_xfer_msg(i2c_dev, &msgs[i], MSG_END_CONTINUE);
13961396
if (ret)
13971397
break;
1398+
1399+
/* Validate message length before proceeding */
1400+
if (msgs[i].buf[0] == 0 || msgs[i].buf[0] > I2C_SMBUS_BLOCK_MAX)
1401+
break;
1402+
13981403
/* Set the msg length from first byte */
13991404
msgs[i].len += msgs[i].buf[0];
14001405
dev_dbg(i2c_dev->dev, "reading %d bytes\n", msgs[i].len);

0 commit comments

Comments
 (0)