From: Alan Stern This patch (as907) prevents us from trying to allocate 0 bytes when an interface has no endpoint descriptors. Signed-off-by: Alan Stern Cc: Greg KH Signed-off-by: Andrew Morton --- drivers/usb/core/config.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff -puN drivers/usb/core/config.c~usb-dont-try-to-kzalloc-0-bytes drivers/usb/core/config.c --- a/drivers/usb/core/config.c~usb-dont-try-to-kzalloc-0-bytes +++ a/drivers/usb/core/config.c @@ -185,10 +185,12 @@ static int usb_parse_interface(struct de 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; _