diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2007-05-15 17:40:37 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-05-22 23:45:50 -0700 |
commit | 57a21c1b929450b1e020c0a03cca6fa7448f4222 (patch) | |
tree | 78f5f237293338f00d288a40dea3a7ed78591845 /drivers/usb | |
parent | b89ee19ae6c0b5a0d9facca780b53959fbadd123 (diff) | |
download | linux-57a21c1b929450b1e020c0a03cca6fa7448f4222.tar.gz linux-57a21c1b929450b1e020c0a03cca6fa7448f4222.tar.bz2 linux-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.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c index bfb3731d42db..2d4fd530e5e4 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; |