macvlan: do proper cleanup in macvlan_common_newlink() V2

Fixes possible memory leak.

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Jiri Pirko and committed by David S. Miller f16d3d57 556ae191

+8 -1
+8 -1
drivers/net/macvlan.c
··· 634 634 635 635 err = register_netdevice(dev); 636 636 if (err < 0) 637 - return err; 637 + goto destroy_port; 638 638 639 639 list_add_tail(&vlan->list, &port->vlans); 640 640 netif_stacked_transfer_operstate(lowerdev, dev); 641 + 641 642 return 0; 643 + 644 + destroy_port: 645 + if (list_empty(&port->vlans)) 646 + macvlan_port_destroy(lowerdev); 647 + 648 + return err; 642 649 } 643 650 EXPORT_SYMBOL_GPL(macvlan_common_newlink); 644 651