summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2017-03-13 12:40:22 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-03-30 07:41:24 (GMT)
commitdfcacd07bf06716cd1c77677914bb3d97161e275 (patch)
tree75bdd171ab74db4211e576babc1c803b09993611 /drivers/mmc
parent2e7486a05b81a182c106486ba0b7b91762390103 (diff)
downloadlinux-dfcacd07bf06716cd1c77677914bb3d97161e275.tar.xz
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: Greg Kroah-Hartman <gregkh@linuxfoundation.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 d2c386f..1d84335 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;