USB Network driver infrastructure: Fix leak when usb_autopm_get_interface() returns less than zero in kevent().

We'll leak the memory allocated to 'urb' in
drivers/net/usb/usbnet.c:kevent() when we 'goto fail_lowmem' and the 'urb'
variable goes out of scope while still completely unused.

Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Jesper Juhl 2011-02-10 10:58:45 +00:00 committed by David S. Miller
parent d3337de52a
commit ab60707ffe

View File

@ -931,8 +931,10 @@ kevent (struct work_struct *work)
if (urb != NULL) {
clear_bit (EVENT_RX_MEMORY, &dev->flags);
status = usb_autopm_get_interface(dev->intf);
if (status < 0)
if (status < 0) {
usb_free_urb(urb);
goto fail_lowmem;
}
if (rx_submit (dev, urb, GFP_KERNEL) == -ENOLINK)
resched = 0;
usb_autopm_put_interface(dev->intf);