summaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2017-03-13 13:40:22 +0100
committerUlf Hansson <ulf.hansson@linaro.org>2017-03-16 15:31:27 +0100
commit181302dc7239add8ab1449c23ecab193f52ee6ab (patch)
tree6ac9e1a0bbcb741cd1029027d43aabd045a38e44 /drivers/mmc
parentmmc: sdhci-of-at91: Support external regulators (diff)
downloadlinux-181302dc7239add8ab1449c23ecab193f52ee6ab.tar.xz
linux-181302dc7239add8ab1449c23ecab193f52ee6ab.zip
mmc: ushc: 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: 53f3a9e26ed5 ("mmc: USB SD Host Controller (USHC) driver") Cc: stable <stable@vger.kernel.org> # 2.6.37 Cc: David Vrabel <david.vrabel@csr.com> Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc')
-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;