2003-03-09 21:04:46

by Oleg Drokin

[permalink] [raw]
Subject: Memleak in ircomm_core

Hello!

There seems to be a memleak on error exit path. The same patch should apply
to 2.5 and 2.4

Found with help of smatch + enhanced unfree script.

Bye,
Oleg

===== net/irda/ircomm/ircomm_core.c 1.5 vs edited =====
--- 1.5/net/irda/ircomm/ircomm_core.c Tue Aug 6 22:23:24 2002
+++ edited/net/irda/ircomm/ircomm_core.c Mon Mar 10 00:10:10 2003
@@ -121,8 +121,10 @@
} else
ret = ircomm_open_tsap(self);

- if (ret < 0)
+ if (ret < 0) {
+ kfree(self);
return NULL;
+ }

self->service_type = service_type;
self->line = line;


2003-03-09 22:53:01

by Neale Banks

[permalink] [raw]
Subject: Re: Memleak in ircomm_core

On Mon, 10 Mar 2003, Oleg Drokin wrote:

> Hello!
>
> There seems to be a memleak on error exit path. The same patch should apply
> to 2.5 and 2.4
>
> Found with help of smatch + enhanced unfree script.
>
> Bye,
> Oleg
>
> ===== net/irda/ircomm/ircomm_core.c 1.5 vs edited =====
> --- 1.5/net/irda/ircomm/ircomm_core.c Tue Aug 6 22:23:24 2002
> +++ edited/net/irda/ircomm/ircomm_core.c Mon Mar 10 00:10:10 2003
> @@ -121,8 +121,10 @@
> } else
> ret = ircomm_open_tsap(self);
>
> - if (ret < 0)
> + if (ret < 0) {
> + kfree(self);
> return NULL;
> + }
>
> self->service_type = service_type;
> self->line = line;
> -

Must be an old one - looks like the same patch is needed in 2.2.24-rc5.

HTH,
Neale.