]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ISDN: hfcsusb: checking idx of ep configuration
authorPhong Tran <tranmanphong@gmail.com>
Mon, 15 Jul 2019 15:08:14 +0000 (22:08 +0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 15 Jul 2019 18:10:31 +0000 (11:10 -0700)
The syzbot test with random endpoint address which made the idx is
overflow in the table of endpoint configuations.

this adds the checking for fixing the error report from
syzbot

KASAN: stack-out-of-bounds Read in hfcsusb_probe [1]
The patch tested by syzbot [2]

Reported-by: syzbot+8750abbc3a46ef47d509@syzkaller.appspotmail.com
[1]:
https://syzkaller.appspot.com/bug?id=30a04378dac680c5d521304a00a86156bb913522
[2]:
https://groups.google.com/d/msg/syzkaller-bugs/_6HBdge8F3E/OJn7wVNpBAAJ

Signed-off-by: Phong Tran <tranmanphong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/isdn/hardware/mISDN/hfcsusb.c

index 4c99739b937eef987949847c4cb4676bdbb85950..0e224232f74644e1a1b620ca9c3d1067891e34d9 100644 (file)
@@ -1955,6 +1955,9 @@ hfcsusb_probe(struct usb_interface *intf, const struct usb_device_id *id)
 
                                /* get endpoint base */
                                idx = ((ep_addr & 0x7f) - 1) * 2;
+                               if (idx > 15)
+                                       return -EIO;
+
                                if (ep_addr & 0x80)
                                        idx++;
                                attr = ep->desc.bmAttributes;