2006-10-05 10:32:11

by Eric Sesterhenn

[permalink] [raw]
Subject: [Patch] Memory leak in drivers/usb/serial/airprime.c

hi,

the commit http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=5dda171202f94127e49c12daf780cdae1b4e668b
added a memory leak. In case we cant allocate an urb, we dont free
the buffer and leak it. Coverity id #1438

Signed-off-by: Eric Sesterhenn <[email protected]>

--- linux-2.6.19-rc1/drivers/usb/serial/airprime.c.orig 2006-10-05 12:25:56.000000000 +0200
+++ linux-2.6.19-rc1/drivers/usb/serial/airprime.c 2006-10-05 12:26:35.000000000 +0200
@@ -133,6 +133,7 @@ static int airprime_open(struct usb_seri
}
urb = usb_alloc_urb(0, GFP_KERNEL);
if (!urb) {
+ kfree(buffer);
dev_err(&port->dev, "%s - no more urbs?\n",
__FUNCTION__);
result = -ENOMEM;



2006-10-06 19:01:18

by Andy Gay

[permalink] [raw]
Subject: Re: [Patch] Memory leak in drivers/usb/serial/airprime.c

Hmm. And I really thought I'd plugged all the leaks....

Acked-by: Andy Gay <[email protected]>

On Thu, 2006-10-05 at 12:31 +0200, Eric Sesterhenn wrote:
> hi,
>
> the commit http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=5dda171202f94127e49c12daf780cdae1b4e668b
> added a memory leak. In case we cant allocate an urb, we dont free
> the buffer and leak it. Coverity id #1438
>
> Signed-off-by: Eric Sesterhenn <[email protected]>
>
> --- linux-2.6.19-rc1/drivers/usb/serial/airprime.c.orig 2006-10-05 12:25:56.000000000 +0200
> +++ linux-2.6.19-rc1/drivers/usb/serial/airprime.c 2006-10-05 12:26:35.000000000 +0200
> @@ -133,6 +133,7 @@ static int airprime_open(struct usb_seri
> }
> urb = usb_alloc_urb(0, GFP_KERNEL);
> if (!urb) {
> + kfree(buffer);
> dev_err(&port->dev, "%s - no more urbs?\n",
> __FUNCTION__);
> result = -ENOMEM;
>
>
>