]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
usb: net: sierra: check for no status endpoint
authorOliver Neukum <oneukum@suse.com>
Mon, 14 Jul 2025 11:12:56 +0000 (13:12 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 15 Jul 2025 23:02:13 +0000 (16:02 -0700)
The driver checks for having three endpoints and
having bulk in and out endpoints, but not that
the third endpoint is interrupt input.
Rectify the omission.

Reported-by: syzbot+3f89ec3d1d0842e95d50@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-usb/686d5a9f.050a0220.1ffab7.0017.GAE@google.com/
Tested-by: syzbot+3f89ec3d1d0842e95d50@syzkaller.appspotmail.com
Fixes: eb4fd8cd355c8 ("net/usb: add sierra_net.c driver")
Signed-off-by: Oliver Neukum <oneukum@suse.com>
Link: https://patch.msgid.link/20250714111326.258378-1-oneukum@suse.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/usb/sierra_net.c

index c30ca415d1d3df141982a834722bb4a5655477ac..36c73db44f770f4177c6eb84d298d9585733b224 100644 (file)
@@ -689,6 +689,10 @@ static int sierra_net_bind(struct usbnet *dev, struct usb_interface *intf)
                        status);
                return -ENODEV;
        }
+       if (!dev->status) {
+               dev_err(&dev->udev->dev, "No status endpoint found");
+               return -ENODEV;
+       }
        /* Initialize sierra private data */
        priv = kzalloc(sizeof *priv, GFP_KERNEL);
        if (!priv)