summary refs log tree commit diff
path: root/drivers/net/tokenring
diff options
context:
space:
mode:
authorJirka Pirko <jirka@pirko.cz>2008-11-24 14:49:11 -0800
committerDavid S. Miller <davem@davemloft.net>2008-11-24 14:49:11 -0800
commit5c94afd79cd9e68cb9899fe7788342329e9f445f (patch)
tree2ea134e0418a2e2fb0bce5ac9cec9a02ad591b3c /drivers/net/tokenring
parent138a5cdf2ffe8c6602641f8aaa00cfcf10929fe1 (diff)
downloadlinux-5c94afd79cd9e68cb9899fe7788342329e9f445f.tar.gz
tokenring/3c359.c: Prevent possible mem leak when open failed
Freeing previously allocated buffers in case of error.

Signed-off-by: Jirka Pirko <jirka@pirko.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tokenring')
-rw-r--r--drivers/net/tokenring/3c359.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/tokenring/3c359.c b/drivers/net/tokenring/3c359.c
index 8a43ecd0d6e7..e7a944657cf8 100644
--- a/drivers/net/tokenring/3c359.c
+++ b/drivers/net/tokenring/3c359.c
@@ -669,6 +669,8 @@ static int xl_open(struct net_device *dev)
 	if (i==0) { 
 		printk(KERN_WARNING "%s: Not enough memory to allocate rx buffers. Adapter disabled \n",dev->name) ; 
 		free_irq(dev->irq,dev) ; 
+		kfree(xl_priv->xl_tx_ring);
+		kfree(xl_priv->xl_rx_ring);
 		return -EIO ; 
 	}