summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2017-03-13 13:39:01 +0100
committerBen Hutchings <ben@decadent.org.uk>2017-07-18 18:40:12 +0100
commitdd470c925ea8b544960c286b69836ca197302197 (patch)
treef656d09dad72df71dfb6fa5fcbed8add5dd21032
parent731cf50cef0571bcdc62b30971ed00cd62895aeb (diff)
downloadlinux-stable-dd470c925ea8b544960c286b69836ca197302197.tar.gz
linux-stable-dd470c925ea8b544960c286b69836ca197302197.tar.bz2
linux-stable-dd470c925ea8b544960c286b69836ca197302197.zip
isdn/gigaset: fix NULL-deref at probe
commit 68c32f9c2a36d410aa242e661506e5b2c2764179 upstream. 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: Hansjoerg Lipp <hjlipp@web.de> Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--drivers/isdn/gigaset/bas-gigaset.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c
index b7ae0a0dd5b6..2a46128ff776 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,
return -ENODEV;
}
+ if (hostif->desc.bNumEndpoints < 1)
+ return -ENODEV;
+
dev_info(&udev->dev,
"%s: Device matched (Vendor: 0x%x, Product: 0x%x)\n",
__func__, le16_to_cpu(udev->descriptor.idVendor),