Hello,
There is possible memleak in auerbuf_setup(). Fix is to replace kfree() with auerbuf_free().
An argument to usb_free_urb() does not need a check as usb_free_urb() already does that. Not sure if I should
send this in two separate patches. The patch is against 2.6.19-rc4 (not -mm).
Signed-off-by: Mariusz Kozlowski <[email protected]>
diff -up linux-2.6.19-rc4-orig/drivers/usb/misc/auerswald.c linux-2.6.19-rc4/drivers/usb/misc/auerswald.c
--- linux-2.6.19-rc4-orig/drivers/usb/misc/auerswald.c 2006-11-06 17:08:20.000000000 +0100
+++ linux-2.6.19-rc4/drivers/usb/misc/auerswald.c 2006-11-06 18:25:32.000000000 +0100
@@ -704,9 +704,7 @@ static void auerbuf_free (pauerbuf_t bp)
{
kfree(bp->bufp);
kfree(bp->dr);
- if (bp->urbp) {
- usb_free_urb(bp->urbp);
- }
+ usb_free_urb(bp->urbp);
kfree(bp);
}
@@ -780,7 +778,7 @@ static int auerbuf_setup (pauerbufctl_t
bl_fail:/* not enough memory. Free allocated elements */
dbg ("auerbuf_setup: no more memory");
- kfree(bep);
+ auerbuf_free(bep);
auerbuf_free_buffers (bcp);
return -ENOMEM;
}
@@ -1085,10 +1083,8 @@ exit:
*/
static void auerswald_int_free (pauerswald_t cp)
{
- if (cp->inturbp) {
- usb_free_urb(cp->inturbp);
- cp->inturbp = NULL;
- }
+ usb_free_urb(cp->inturbp);
+ cp->inturbp = NULL;
kfree(cp->intbufp);
cp->intbufp = NULL;
}
Witam,
> Hello,
>
> There is possible memleak in auerbuf_setup(). Fix is to replace kfree() with auerbuf_free().
> An argument to usb_free_urb() does not need a check as usb_free_urb() already does that. Not sure if I should
> send this in two separate patches. The patch is against 2.6.19-rc4 (not -mm).
As I posted the bigger usb_free_urb() patch in another mail this one should do only one
thing which is to fix possible memory leak in auerbuf_setup().
Regards,
Mariusz Kozlowski
Signed-off-by: Mariusz Kozlowski <[email protected]>
diff -up linux-2.6.19-rc4-orig/drivers/usb/misc/auerswald.c linux-2.6.19-rc4/drivers/usb/misc/auerswald.c
--- linux-2.6.19-rc4-orig/drivers/usb/misc/auerswald.c 2006-11-06 17:08:20.000000000 +0100
+++ linux-2.6.19-rc4/drivers/usb/misc/auerswald.c 2006-11-07 00:26:25.000000000 +0100
@@ -780,7 +780,7 @@ static int auerbuf_setup (pauerbufctl_t
bl_fail:/* not enough memory. Free allocated elements */
dbg ("auerbuf_setup: no more memory");
- kfree(bep);
+ auerbuf_free (bep);
auerbuf_free_buffers (bcp);
return -ENOMEM;
}
On Tue, Nov 07, 2006 at 12:31:51AM +0100, Mariusz Kozlowski wrote:
> Witam,
>
> > Hello,
> >
> > There is possible memleak in auerbuf_setup(). Fix is to replace kfree() with auerbuf_free().
> > An argument to usb_free_urb() does not need a check as usb_free_urb() already does that. Not sure if I should
> > send this in two separate patches. The patch is against 2.6.19-rc4 (not -mm).
>
> As I posted the bigger usb_free_urb() patch in another mail this one
> should do only one thing which is to fix possible memory leak in
> auerbuf_setup().
That is a big patch, care to split it up into smaller pieces like this
one so that it is easier to review and apply?
thanks,
greg k-h
Witam,
> On Tue, Nov 07, 2006 at 12:31:51AM +0100, Mariusz Kozlowski wrote:
> > Witam,
> >
> > > Hello,
> > >
> > > There is possible memleak in auerbuf_setup(). Fix is to replace kfree() with auerbuf_free().
> > > An argument to usb_free_urb() does not need a check as usb_free_urb() already does that. Not sure if I should
> > > send this in two separate patches. The patch is against 2.6.19-rc4 (not -mm).
> >
> > As I posted the bigger usb_free_urb() patch in another mail this one
> > should do only one thing which is to fix possible memory leak in
> > auerbuf_setup().
>
> That is a big patch, care to split it up into smaller pieces like this
> one so that it is easier to review and apply?
Sure I can but Andrew already included it in -mm as-is. Do I have to prepare another set of patches
and send them to you (which is no problem to me - just not sure how it works)?
Regards,
Mariusz Kozlowski
On Tue, Nov 07, 2006 at 10:25:14AM +0100, Mariusz Kozlowski wrote:
> Witam,
>
> > On Tue, Nov 07, 2006 at 12:31:51AM +0100, Mariusz Kozlowski wrote:
> > > Witam,
> > >
> > > > Hello,
> > > >
> > > > There is possible memleak in auerbuf_setup(). Fix is to replace kfree() with auerbuf_free().
> > > > An argument to usb_free_urb() does not need a check as usb_free_urb() already does that. Not sure if I should
> > > > send this in two separate patches. The patch is against 2.6.19-rc4 (not -mm).
> > >
> > > As I posted the bigger usb_free_urb() patch in another mail this one
> > > should do only one thing which is to fix possible memory leak in
> > > auerbuf_setup().
> >
> > That is a big patch, care to split it up into smaller pieces like this
> > one so that it is easier to review and apply?
>
> Sure I can but Andrew already included it in -mm as-is. Do I have to
> prepare another set of patches and send them to you (which is no
> problem to me - just not sure how it works)?
Please just send a new series of patches to me, and then when they show
up in my tree, Andrew will drop his patch.
This will also get you to fix your email client so that you can continue
to send more patches in the future :)
And please CC: usb patches to the linux-usb-devel mailing list, so the
developers there can comment on them if needed.
thanks,
greg k-h
Mariusz,
On Tuesday 07 November 2006 00:31, Mariusz Kozlowski wrote:
> > There is possible memleak in auerbuf_setup(). Fix is to replace
> > kfree() with auerbuf_free(). An argument to usb_free_urb() does not
> > need a check as usb_free_urb() already does that. Not sure if I
> > should send this in two separate patches. The patch is against
> > 2.6.19-rc4 (not -mm).
>
> As I posted the bigger usb_free_urb() patch in another mail this one
> should do only one thing which is to fix possible memory leak in
> auerbuf_setup().
>
> Regards,
>
> Mariusz Kozlowski
>
> Signed-off-by: Mariusz Kozlowski <[email protected]>
Signed-off-by: Wolfgang Muees <[email protected]>
> diff -up linux-2.6.19-rc4-orig/drivers/usb/misc/auerswald.c
> linux-2.6.19-rc4/drivers/usb/misc/auerswald.c ---
> linux-2.6.19-rc4-orig/drivers/usb/misc/auerswald.c 2006-11-06
> 17:08:20.000000000 +0100 +++
> linux-2.6.19-rc4/drivers/usb/misc/auerswald.c 2006-11-07
> 00:26:25.000000000 +0100 @@ -780,7 +780,7 @@ static int auerbuf_setup
> (pauerbufctl_t
>
> bl_fail:/* not enough memory. Free allocated elements */
> dbg ("auerbuf_setup: no more memory");
> - kfree(bep);
> + auerbuf_free (bep);
> auerbuf_free_buffers (bcp);
> return -ENOMEM;
> }
Many thanks for pointing this out.
regards
Wolfgang