Patchwork [3/3,-next] 6LoWPAN: call dev_put() on error in lowpan_newlink()

login
register
mail settings
Submitter Dan Carpenter
Date Aug. 30, 2011, 1:51 p.m.
Message ID <20110830135109.GJ3705@shale.localdomain>
Download mbox | patch
Permalink /patch/112313/
State Accepted
Delegated to: David Miller
Headers show

Comments

Dan Carpenter - Aug. 30, 2011, 1:51 p.m.
We should release the dev_hold() on error before returning here.

Signed-off-by: Dan Carpenter <error27@gmail.com>
---
All three of these patches were compile tested only, but this is the
one I'm not very certain of.  I've obviously tried to get it right,
but please review it carefully.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - Sept. 15, 2011, 7:42 p.m.
From: Dan Carpenter <error27@gmail.com>
Date: Tue, 30 Aug 2011 16:51:09 +0300

> We should release the dev_hold() on error before returning here.
> 
> Signed-off-by: Dan Carpenter <error27@gmail.com>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c
index 5dc0489..f0d1536 100644
--- a/net/ieee802154/6lowpan.c
+++ b/net/ieee802154/6lowpan.c
@@ -793,8 +793,11 @@  static int lowpan_newlink(struct net *src_net, struct net_device *dev,
 	mutex_init(&lowpan_dev_info(dev)->dev_list_mtx);
 
 	entry = kzalloc(sizeof(struct lowpan_dev_record), GFP_KERNEL);
-	if (!entry)
+	if (!entry) {
+		dev_put(real_dev);
+		lowpan_dev_info(dev)->real_dev = NULL;
 		return -ENOMEM;
+	}
 
 	entry->ldev = dev;