From: Dan Carpenter Date: Tue, 3 Dec 2019 14:12:39 +0000 (+0300) Subject: net: fix a leak in register_netdevice() X-Git-Tag: v5.10.7~3665^2~45 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=42c17fa69f9866a3f80ac196ce70b4fda1242717;p=platform%2Fkernel%2Flinux-rpi.git net: fix a leak in register_netdevice() We have to free "dev->name_node" on this error path. Fixes: ff92741270bf ("net: introduce name_node struct to be used in hashlist") Reported-by: syzbot+6e13e65ffbaa33757bcb@syzkaller.appspotmail.com Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller --- diff --git a/net/core/dev.c b/net/core/dev.c index 46580b2..e7c027f 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -9246,7 +9246,7 @@ int register_netdevice(struct net_device *dev) if (ret) { if (ret > 0) ret = -EIO; - goto out; + goto err_free_name; } } @@ -9361,12 +9361,12 @@ out: return ret; err_uninit: - if (dev->name_node) - netdev_name_node_free(dev->name_node); if (dev->netdev_ops->ndo_uninit) dev->netdev_ops->ndo_uninit(dev); if (dev->priv_destructor) dev->priv_destructor(dev); +err_free_name: + netdev_name_node_free(dev->name_node); goto out; } EXPORT_SYMBOL(register_netdevice);