Переглянути джерело

6LoWPAN: call dev_put() on error in lowpan_newlink()

We should release the dev_hold() on error before returning here.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Dan Carpenter 13 роки тому
батько
коміт
dc00fd4441
1 змінених файлів з 4 додано та 1 видалено
  1. 4 1
      net/ieee802154/6lowpan.c

+ 4 - 1
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);
 	mutex_init(&lowpan_dev_info(dev)->dev_list_mtx);
 
 
 	entry = kzalloc(sizeof(struct lowpan_dev_record), GFP_KERNEL);
 	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;
 		return -ENOMEM;
+	}
 
 
 	entry->ldev = dev;
 	entry->ldev = dev;