summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2007-05-15 17:40:37 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-05-22 23:45:50 -0700
commit57a21c1b929450b1e020c0a03cca6fa7448f4222 (patch)
tree78f5f237293338f00d288a40dea3a7ed78591845 /drivers/usb
parentb89ee19ae6c0b5a0d9facca780b53959fbadd123 (diff)
downloadlinux-3.10-57a21c1b929450b1e020c0a03cca6fa7448f4222.tar.gz
linux-3.10-57a21c1b929450b1e020c0a03cca6fa7448f4222.tar.bz2
linux-3.10-57a21c1b929450b1e020c0a03cca6fa7448f4222.zip
USB: don't try to kzalloc 0 bytes
This patch (as907) prevents us from trying to allocate 0 bytes when an interface has no endpoint descriptors. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/core/config.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index bfb3731d42d..2d4fd530e5e 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -185,10 +185,12 @@ static int usb_parse_interface(struct device *ddev, int cfgno,
num_ep = USB_MAXENDPOINTS;
}
- len = sizeof(struct usb_host_endpoint) * num_ep;
- alt->endpoint = kzalloc(len, GFP_KERNEL);
- if (!alt->endpoint)
- return -ENOMEM;
+ if (num_ep > 0) { /* Can't allocate 0 bytes */
+ len = sizeof(struct usb_host_endpoint) * num_ep;
+ alt->endpoint = kzalloc(len, GFP_KERNEL);
+ if (!alt->endpoint)
+ return -ENOMEM;
+ }
/* Parse all the endpoint descriptors */
n = 0;