aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2019-12-02 09:56:08 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-12-10 11:08:06 +0100
commit53f35a39c3860baac1e5ca80bf052751cfb24a99 (patch)
tree0a85ce7ef23940f658a303ae31642e5077d0405d /drivers/staging
parentstaging: vchiq: call unregister_chrdev_region() when driver registration fails (diff)
downloadlinux-dev-53f35a39c3860baac1e5ca80bf052751cfb24a99.tar.xz
linux-dev-53f35a39c3860baac1e5ca80bf052751cfb24a99.zip
staging: gigaset: fix general protection fault on probe
Fix a general protection fault when accessing the endpoint descriptors which could be triggered by a malicious device due to missing sanity checks on the number of endpoints. Reported-by: syzbot+35b1c403a14f5c89eba7@syzkaller.appspotmail.com Fixes: 07dc1f9f2f80 ("[PATCH] isdn4linux: Siemens Gigaset drivers - M105 USB DECT adapter") Cc: stable <stable@vger.kernel.org> # 2.6.17 Cc: Hansjoerg Lipp <hjlipp@web.de> Cc: Tilman Schmidt <tilman@imap.cc> Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://lore.kernel.org/r/20191202085610.12719-2-johan@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/isdn/gigaset/usb-gigaset.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/staging/isdn/gigaset/usb-gigaset.c b/drivers/staging/isdn/gigaset/usb-gigaset.c
index 1b9b43659bdf..5e393e7dde45 100644
--- a/drivers/staging/isdn/gigaset/usb-gigaset.c
+++ b/drivers/staging/isdn/gigaset/usb-gigaset.c
@@ -685,6 +685,11 @@ static int gigaset_probe(struct usb_interface *interface,
return -ENODEV;
}
+ if (hostif->desc.bNumEndpoints < 2) {
+ dev_err(&interface->dev, "missing endpoints\n");
+ return -ENODEV;
+ }
+
dev_info(&udev->dev, "%s: Device matched ... !\n", __func__);
/* allocate memory for our device state and initialize it */