diff options
author | Johan Hovold <johan@kernel.org> | 2017-03-13 08:39:01 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-03-13 15:28:40 -0400 |
commit | 68c32f9c2a36d410aa242e661506e5b2c2764179 (patch) | |
tree | f453aca2c01f08f046250812a61fa94de38c5ea7 | |
parent | 67e194007be08d071294456274dd53e0a04fdf90 (diff) |
isdn/gigaset: fix NULL-deref at probe
Make sure to check the number of endpoints to avoid dereferencing a
NULL-pointer should a malicious device lack endpoints.
Fixes: cf7776dc05b8 ("[PATCH] isdn4linux: Siemens Gigaset drivers -
direct USB connection")
Cc: stable <stable@vger.kernel.org> # 2.6.17
Cc: Hansjoerg Lipp <hjlipp@web.de>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/isdn/gigaset/bas-gigaset.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c index 11e13c56126f..2da3ff650e1d 100644 --- a/drivers/isdn/gigaset/bas-gigaset.c +++ b/drivers/isdn/gigaset/bas-gigaset.c | |||
@@ -2317,6 +2317,9 @@ static int gigaset_probe(struct usb_interface *interface, | |||
2317 | return -ENODEV; | 2317 | return -ENODEV; |
2318 | } | 2318 | } |
2319 | 2319 | ||
2320 | if (hostif->desc.bNumEndpoints < 1) | ||
2321 | return -ENODEV; | ||
2322 | |||
2320 | dev_info(&udev->dev, | 2323 | dev_info(&udev->dev, |
2321 | "%s: Device matched (Vendor: 0x%x, Product: 0x%x)\n", | 2324 | "%s: Device matched (Vendor: 0x%x, Product: 0x%x)\n", |
2322 | __func__, le16_to_cpu(udev->descriptor.idVendor), | 2325 | __func__, le16_to_cpu(udev->descriptor.idVendor), |