i2c: tegra: check msg length in SMBUS block read
[ Upstream commit a6e04f05ce0b070ab39d5775580e65c7d943da0b ] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
762325441e
commit
be5f6a6550
@@ -1397,6 +1397,11 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
|
||||
ret = tegra_i2c_xfer_msg(i2c_dev, &msgs[i], MSG_END_CONTINUE);
|
||||
if (ret)
|
||||
break;
|
||||
|
||||
/* Validate message length before proceeding */
|
||||
if (msgs[i].buf[0] == 0 || msgs[i].buf[0] > I2C_SMBUS_BLOCK_MAX)
|
||||
break;
|
||||
|
||||
/* Set the msg length from first byte */
|
||||
msgs[i].len += msgs[i].buf[0];
|
||||
dev_dbg(i2c_dev->dev, "reading %d bytes\n", msgs[i].len);
|
||||
|
Reference in New Issue
Block a user