summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2017-03-13 13:47:52 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-03-14 10:07:30 +0100
commitdaf229b15907fbfdb6ee183aac8ca428cb57e361 (patch)
tree57aee7e47013cab76964b20c584bf0b8bda38ff9
parentUSB: wusbcore: fix NULL-deref at probe (diff)
downloadlinux-daf229b15907fbfdb6ee183aac8ca428cb57e361.tar.xz
linux-daf229b15907fbfdb6ee183aac8ca428cb57e361.zip
uwb: hwa-rc: 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. Note that the dereference happens in the start callback which is called during probe. Fixes: de520b8bd552 ("uwb: add HWA radio controller driver") Cc: stable <stable@vger.kernel.org> # 2.6.28 Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> Cc: David Vrabel <david.vrabel@csr.com> Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/uwb/hwa-rc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/uwb/hwa-rc.c b/drivers/uwb/hwa-rc.c
index 0aa6c3c29d17..35a1e777b449 100644
--- a/drivers/uwb/hwa-rc.c
+++ b/drivers/uwb/hwa-rc.c
@@ -823,6 +823,9 @@ static int hwarc_probe(struct usb_interface *iface,
struct hwarc *hwarc;
struct device *dev = &iface->dev;
+ if (iface->cur_altsetting->desc.bNumEndpoints < 1)
+ return -ENODEV;
+
result = -ENOMEM;
uwb_rc = uwb_rc_alloc();
if (uwb_rc == NULL) {