mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 15:18:19 +00:00
net: vlan: avoid leaks on register_vlan_dev() failures
[ Upstream commit55b7ab1178
] VLAN checks for NETREG_UNINITIALIZED to distinguish between registration failure and unregistration in progress. Since commitcb626bf566
("net-sysfs: Fix reference count leak") registration failure may, however, result in NETREG_UNREGISTERED as well as NETREG_UNINITIALIZED. This fix is similer tocebb69754f
("rtnetlink: Fix memory(net_device) leak when ->newlink fails") Fixes:cb626bf566
("net-sysfs: Fix reference count leak") Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
51d3a64050
commit
1f8b4552e3
1 changed files with 2 additions and 1 deletions
|
@ -272,7 +272,8 @@ static int register_vlan_device(struct net_device *real_dev, u16 vlan_id)
|
|||
return 0;
|
||||
|
||||
out_free_newdev:
|
||||
if (new_dev->reg_state == NETREG_UNINITIALIZED)
|
||||
if (new_dev->reg_state == NETREG_UNINITIALIZED ||
|
||||
new_dev->reg_state == NETREG_UNREGISTERED)
|
||||
free_netdev(new_dev);
|
||||
return err;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue