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 <jj@chaosbits.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Jesper Juhl 2011-01-23 23:08:31 +01:00 коммит произвёл Greg Kroah-Hartman
Родитель b14de38572
Коммит 2bd15f1f49
1 изменённых файлов: 1 добавлений и 0 удалений

Просмотреть файл

@ -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;
}