Commit bb436283 authored by Pavel Skripkin's avatar Pavel Skripkin Committed by Wolfram Sang
Browse files

i2c: validate user data in compat ioctl



Wrong user data may cause warning in i2c_transfer(), ex: zero msgs.
Userspace should not be able to trigger warnings, so this patch adds
validation checks for user data in compact ioctl to prevent reported
warnings

Reported-and-tested-by: default avatar <syzbot+e417648b303855b91d8a@syzkaller.appspotmail.com>
Fixes: 7d5cb456 ("i2c compat ioctls: move to ->compat_ioctl()")
Signed-off-by: default avatarPavel Skripkin <paskripkin@gmail.com>
Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
parent fc74e0a4
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -535,6 +535,9 @@ static long compat_i2cdev_ioctl(struct file *file, unsigned int cmd, unsigned lo
				   sizeof(rdwr_arg)))
			return -EFAULT;

		if (!rdwr_arg.msgs || rdwr_arg.nmsgs == 0)
			return -EINVAL;

		if (rdwr_arg.nmsgs > I2C_RDWR_IOCTL_MAX_MSGS)
			return -EINVAL;