summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2017-03-13 13:40:22 +0100
committerBen Hutchings <ben@decadent.org.uk>2017-07-18 18:40:16 +0100
commit0afbfd352076fb940caeaac32f7c360fd8212979 (patch)
tree4c2dfb0137ce3ca2e9344791d16a6899bfbd23b4
parente5289fc9e6937b536a6a3e170d59ae8954f87b66 (diff)
downloadlinux-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.c3
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;