diff options
author | Yang Yingliang <yangyingliang@huawei.com> | 2020-05-30 11:34:33 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-05-30 17:48:56 -0700 |
commit | 1b49cd71b52403822731dc9f283185d1da355f97 (patch) | |
tree | 2e349d434e2b0b69373d78d35518acedcf7985d7 /net | |
parent | 8692cefc433f282228fd44938dd4d26ed38254a2 (diff) | |
download | linux-1b49cd71b52403822731dc9f283185d1da355f97.tar.gz linux-1b49cd71b52403822731dc9f283185d1da355f97.tar.bz2 linux-1b49cd71b52403822731dc9f283185d1da355f97.zip |
devinet: fix memleak in inetdev_init()
When devinet_sysctl_register() failed, the memory allocated
in neigh_parms_alloc() should be freed.
Fixes: 20e61da7ffcf ("ipv4: fail early when creating netdev named all or default")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/devinet.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index c0dd561aa190..5267b6b191eb 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -276,6 +276,7 @@ static struct in_device *inetdev_init(struct net_device *dev) err = devinet_sysctl_register(in_dev); if (err) { in_dev->dead = 1; + neigh_parms_release(&arp_tbl, in_dev->arp_parms); in_dev_put(in_dev); in_dev = NULL; goto out; |