mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 03:53:37 +02:00
media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()
rlen value is a user-controlled value, but dtv5100_i2c_msg() does not
check the size of the rlen value. Therefore, if it is set to a value
larger than sizeof(st->data), an out-of-bounds vuln occurs for st->data.
Therefore, we need to add proper range checking to prevent this vuln.
Fixes: 60688d5e6e ("V4L/DVB (8735): dtv5100: replace dummy frontend by zl10353")
Cc: stable@vger.kernel.org
Signed-off-by: Jeongjun Park <aha310510@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
parent
3a86608788
commit
b91e6aafe8
|
|
@ -55,6 +55,11 @@ static int dtv5100_i2c_msg(struct dvb_usb_device *d, u8 addr,
|
|||
}
|
||||
index = (addr << 8) + wbuf[0];
|
||||
|
||||
if (rlen > sizeof(st->data)) {
|
||||
warn("rlen = %x is too big!\n", rlen);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
memcpy(st->data, rbuf, rlen);
|
||||
msleep(1); /* avoid I2C errors */
|
||||
return usb_control_msg(d->udev, pipe, request,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user