2007-10-12 12:57:18

by Hinko Kocevar

[permalink] [raw]
Subject: [PATCH] irlmp_unregister_link needs to free lsaps hashbin

--- linux-2.6.23/net/irda/irlmp.c.orig 2007-10-12 14:05:17.000000000 +0200
+++ linux-2.6.23/net/irda/irlmp.c 2007-10-12 14:05:41.000000000 +0200
@@ -353,6 +353,7 @@ void irlmp_unregister_link(__u32 saddr)
/* Final cleanup */
del_timer(&link->idle_timer);
link->magic = 0;
+ hashbin_delete(link->lsaps, (FREE_FUNC) kfree);
kfree(link);
}
}


Attachments:
irlmp-delete-lsaps-hashbin.diff (355.00 B)

2007-10-14 09:30:34

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [irda-users] [PATCH] irlmp_unregister_link needs to free lsaps hashbin

Hi Hinko,

On Fri, Oct 12, 2007 at 02:56:27PM +0200, [email protected] wrote:
> Hi,
>
> While testing the mcs7780 based IrDA USB dongle I've stumbled upon
> memory leak in irlmp_unregister_link(). Hashbin for lsaps is created in
> irlmp_register_link and should probably be freed in irlmp_unregister_link().
>
> Signed-off-by: Hinko Kocevar <[email protected]>
>
> Best regards,
> Hinko
>
> ----
>
>

> --- linux-2.6.23/net/irda/irlmp.c.orig 2007-10-12 14:05:17.000000000 +0200
> +++ linux-2.6.23/net/irda/irlmp.c 2007-10-12 14:05:41.000000000 +0200
> @@ -353,6 +353,7 @@ void irlmp_unregister_link(__u32 saddr)
> /* Final cleanup */
> del_timer(&link->idle_timer);
> link->magic = 0;
> + hashbin_delete(link->lsaps, (FREE_FUNC) kfree);
Good catch, but I think the right fix sould be:
+ hashbin_delete(link->lsaps, (FREE_FUNC) __irlmp_close_lsap);

and I'll forward it. Thanks a lot.

Cheers,
Samuel.


> kfree(link);
> }
> }

> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems? Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >> http://get.splunk.com/
> _______________________________________________
> irda-users mailing list
> [email protected]
> http://lists.sourceforge.net/lists/listinfo/irda-users


2007-10-15 07:43:47

by Hinko Kocevar

[permalink] [raw]
Subject: Re: [irda-users] [PATCH] irlmp_unregister_link needs to free lsaps hashbin

Samuel Ortiz wrote:
> Hi Hinko,
>
> On Fri, Oct 12, 2007 at 02:56:27PM +0200, [email protected] wrote:
>> Hi,
>>
>> While testing the mcs7780 based IrDA USB dongle I've stumbled upon
>> memory leak in irlmp_unregister_link(). Hashbin for lsaps is created in
>> irlmp_register_link and should probably be freed in irlmp_unregister_link().
>>
>> Signed-off-by: Hinko Kocevar <[email protected]>
>>
>> Best regards,
>> Hinko
>>
>> ----
>>
>>
>
>> --- linux-2.6.23/net/irda/irlmp.c.orig 2007-10-12 14:05:17.000000000 +0200
>> +++ linux-2.6.23/net/irda/irlmp.c 2007-10-12 14:05:41.000000000 +0200
>> @@ -353,6 +353,7 @@ void irlmp_unregister_link(__u32 saddr)
>> /* Final cleanup */
>> del_timer(&link->idle_timer);
>> link->magic = 0;
>> + hashbin_delete(link->lsaps, (FREE_FUNC) kfree);
> Good catch, but I think the right fix sould be:
> + hashbin_delete(link->lsaps, (FREE_FUNC) __irlmp_close_lsap);
>

You're probably right since struct lsap_cb get inserted into the hashbin.

Regards,
Hinko

--
ČETRTA POT, d.o.o., Kranj
Planina 3
4000 Kranj
Slovenia, Europe
Tel. +386 (0) 4 280 66 03
E-mail: [email protected]
Http: http://www.cetrtapot.si