Skip to content

Commit 9ded5bd

Browse files
harperchenmchehab
authored andcommitted
media: dvb-usb: digitv: fix null-ptr-deref in digitv_i2c_xfer()
In digitv_i2c_xfer, msg is controlled by user. When msg[i].buf is null and msg[i].len is zero, former checks on msg[i].buf would be passed. Malicious data finally reach digitv_i2c_xfer. If accessing msg[i].buf[0] without sanity check, null ptr deref would happen. We add check on msg[i].len to prevent crash. Similar commit: commit 0ed554f ("media: dvb-usb: az6027: fix null-ptr-deref in az6027_i2c_xfer()") Link: https://lore.kernel.org/linux-media/[email protected] Signed-off-by: Wei Chen <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
1 parent aa4a447 commit 9ded5bd

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

drivers/media/usb/dvb-usb/digitv.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ static int digitv_i2c_xfer(struct i2c_adapter *adap,struct i2c_msg msg[],int num
6363
warn("more than 2 i2c messages at a time is not handled yet. TODO.");
6464

6565
for (i = 0; i < num; i++) {
66+
if (msg[i].len < 1) {
67+
i = -EOPNOTSUPP;
68+
break;
69+
}
6670
/* write/read request */
6771
if (i+1 < num && (msg[i+1].flags & I2C_M_RD)) {
6872
if (digitv_ctrl_msg(d, USB_READ_COFDM, msg[i].buf[0], NULL, 0,

0 commit comments

Comments
 (0)