2003-03-12 19:06:02

by Oleg Drokin

[permalink] [raw]
Subject: [2.4] Memleak on error exit path in Aironet 4500 Pcmcia driver

Hello!

There is a memleak on OOM in Aironet 4500 Pcmcia driver,
trivial to fix. See the patch.
Found with help of smatch + enhanced unfree script.

Bye,
Oleg

===== drivers/net/pcmcia/aironet4500_cs.c 1.8 vs edited =====
--- 1.8/drivers/net/pcmcia/aironet4500_cs.c Wed Aug 7 22:27:37 2002
+++ edited/drivers/net/pcmcia/aironet4500_cs.c Wed Mar 12 22:13:20 2003
@@ -282,7 +282,13 @@
};
memset(dev,0,sizeof(struct net_device));
dev->priv = kmalloc(sizeof(struct awc_private), GFP_KERNEL);
- if (!dev->priv ) {printk(KERN_CRIT "out of mem on dev priv alloc \n"); return NULL;};
+ if (!dev->priv ) {
+ printk(KERN_CRIT "out of mem on dev priv alloc \n");
+ kfree(dev);
+ kfree(link->dev);
+ kfree(link);
+ return NULL;
+ }
memset(dev->priv,0,sizeof(struct awc_private));

// link->dev->minor = dev->minor;