diff options
author | Alyssa Milburn <amilburn@zall.org> | 2017-04-01 14:33:42 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2017-04-18 12:52:41 -0300 |
commit | 821117dc21083a99dd99174c10848d70ff43de29 (patch) | |
tree | ba526813d5b48ecffbdf56281096c127f093c333 /drivers/media | |
parent | e8357cdec3d1b6b42566ce3bc960e5e10c2b3787 (diff) | |
download | linux-821117dc21083a99dd99174c10848d70ff43de29.tar.bz2 |
[media] digitv: limit messages to buffer size
Return an error rather than memcpy()ing beyond the end of the buffer.
Internal callers use appropriate sizes, but digitv_i2c_xfer may not.
Signed-off-by: Alyssa Milburn <amilburn@zall.org>
Cc: stable@vger.kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/usb/dvb-usb/digitv.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/usb/dvb-usb/digitv.c b/drivers/media/usb/dvb-usb/digitv.c index 4284f6984dc1..475a3c0cdee7 100644 --- a/drivers/media/usb/dvb-usb/digitv.c +++ b/drivers/media/usb/dvb-usb/digitv.c @@ -33,6 +33,9 @@ static int digitv_ctrl_msg(struct dvb_usb_device *d, wo = (rbuf == NULL || rlen == 0); /* write-only */ + if (wlen > 4 || rlen > 4) + return -EIO; + memset(st->sndbuf, 0, 7); memset(st->rcvbuf, 0, 7); |