From: Jesper Juhl Date: Sun, 23 Jan 2011 22:08:31 +0000 (+0100) Subject: USB SL811HS HCD: Fix memory leak in sl811h_urb_enqueue() X-Git-Tag: v2.6.38-rc5~47^2~12 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=2bd15f1f49629f110bbbbc5a2a226bec892de87c;p=~emulex%2Finfiniband.git USB SL811HS HCD: Fix memory leak in sl811h_urb_enqueue() In drivers/usb/host/sl811-hcd.c::sl811h_urb_enqueue(), memory is allocated with kzalloc() and assigned to 'ep'. If we leave via the 'fail' label due to 'if (ep->maxpacket > H_MAXPACKET)', then 'ep' will go out of scope without having been assigned to anything, so we'll leak the memory we allocated. This patch fixes the leak by simply calling kfree(ep); before jumping to the 'fail' label. Signed-off-by: Jesper Juhl Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c index 990f06b89ea..2e9602a10e9 100644 --- a/drivers/usb/host/sl811-hcd.c +++ b/drivers/usb/host/sl811-hcd.c @@ -861,6 +861,7 @@ static int sl811h_urb_enqueue( DBG("dev %d ep%d maxpacket %d\n", udev->devnum, epnum, ep->maxpacket); retval = -EINVAL; + kfree(ep); goto fail; }