diff options
author | Johan Hovold <johan@kernel.org> | 2017-03-13 13:40:22 +0100 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2017-07-18 18:40:16 +0100 |
commit | 0afbfd352076fb940caeaac32f7c360fd8212979 (patch) | |
tree | 4c2dfb0137ce3ca2e9344791d16a6899bfbd23b4 | |
parent | e5289fc9e6937b536a6a3e170d59ae8954f87b66 (diff) | |
download | linux-stable-0afbfd352076fb940caeaac32f7c360fd8212979.tar.gz linux-stable-0afbfd352076fb940caeaac32f7c360fd8212979.tar.bz2 linux-stable-0afbfd352076fb940caeaac32f7c360fd8212979.zip |
mmc: ushc: fix NULL-deref at probe
commit 181302dc7239add8ab1449c23ecab193f52ee6ab upstream.
Make sure to check the number of endpoints to avoid dereferencing a
NULL-pointer should a malicious device lack endpoints.
Fixes: 53f3a9e26ed5 ("mmc: USB SD Host Controller (USHC) driver")
Cc: David Vrabel <david.vrabel@csr.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r-- | drivers/mmc/host/ushc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mmc/host/ushc.c b/drivers/mmc/host/ushc.c index d2c386f09d69..1d843357422e 100644 --- a/drivers/mmc/host/ushc.c +++ b/drivers/mmc/host/ushc.c @@ -426,6 +426,9 @@ static int ushc_probe(struct usb_interface *intf, const struct usb_device_id *id struct ushc_data *ushc; int ret; + if (intf->cur_altsetting->desc.bNumEndpoints < 1) + return -ENODEV; + mmc = mmc_alloc_host(sizeof(struct ushc_data), &intf->dev); if (mmc == NULL) return -ENOMEM; |