af_irda memory leak fixes
Subsystems (2)
PATCH 1/1 af_irda memory leak fixes
Hi Dave,
Here goes an IrDA patch against your latest net-2.6 tree.
This patch fixes some af_irda memory leaks. It also checks for irias_new_obect() return value.
--- net/irda/af_irda.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-)
net/irda/af_irda.c +27 -3
@@ -802,12 +802,18 @@ }#endif /* CONFIG_IRDA_ULTRA */ + self->ias_obj =irias_new_object (addr->sir_name, jiffies); +if (self->ias_obj ==NULL ) +return -ENOMEM ; + err =irda_open_tsap (self, addr->sir_lsap_sel, addr->sir_name); -if (err <0 ) +if (err <0 ) { +kfree (self->ias_obj->name); +kfree (self->ias_obj);return err; + }/* Register with LM-IAS */ - self->ias_obj =irias_new_object (addr->sir_name, jiffies);irias_add_integer_attrib (self->ias_obj,"IrDA:TinyTP:LsapSel" , self->stsap_sel,IAS_KERNEL_ATTR );irias_insert_object (self->ias_obj);
@@ -1825,7 +1831,7 @@struct irda_ias_set *ias_opt;struct ias_object *ias_obj;struct ias_attrib * ias_attr;/* Attribute in IAS object */ -int opt; +int opt, free_ias =0 ;IRDA_DEBUG (2 ,"%s(%p)\n" , __FUNCTION__, self);
@@ -1881,11 +1887,20 @@/* Create a new object */ ias_obj =irias_new_object (ias_opt->irda_class_name, jiffies); +if (ias_obj ==NULL ) { +kfree (ias_opt); +return -ENOMEM ; + } + free_ias =1 ; }/* Do we have the attribute already ? */ if (irias_find_attrib (ias_obj, ias_opt->irda_attrib_name)) {kfree (ias_opt); +if (free_ias) { +kfree (ias_obj->name); +kfree (ias_obj); + }return -EINVAL ; }
@@ -1904,6 +1919,11 @@if (ias_opt->attribute.irda_attrib_octet_seq.len >IAS_MAX_OCTET_STRING ) {kfree (ias_opt); +if (free_ias) { +kfree (ias_obj->name); +kfree (ias_obj); + } +return -EINVAL ; }/* Add an octet sequence attribute */
@@ -1932,6 +1952,10 @@break ;default :kfree (ias_opt); +if (free_ias) { +kfree (ias_obj->name); +kfree (ias_obj); + }return -EINVAL ; }irias_insert_object (ias_obj);
Quoted 9 lines · Samuel Ortiz
Hi Dave,
Here goes an IrDA patch against your latest net-2.6 tree.
This patch fixes some
af_irdamemory leaks. It also checks foririas_new_obect()return value.Signed-off-by Jesper Juhl <[email protected]>Signed-off-by Samuel Ortiz <[email protected]>
...
Looks good Samuel.
Thank you for improving on my original suggested patch.
Now let's hope someone queues it up for mainline :)
Signature · 3 lines
Jesper Juhl <[email protected]> Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html Plain text mails only, please http://www.expita.com/nomime.html
A message that is not in the archive (sent off-list or not yet received): [email protected]
David Miller
AppliedFrom: Samuel Ortiz <[email protected]>
Date: Fri, 18 Jan 2008 08:53:22 +0100
Quoted 9 lines
Hi Dave,
Here goes an IrDA patch against your latest net-2.6 tree.
This patch fixes some
af_irdamemory leaks. It also checks foririas_new_obect()return value.Signed-off-by Jesper Juhl <[email protected]>Signed-off-by Samuel Ortiz <[email protected]>
Applied, thanks Sam.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/