A vlan cound be found before real dev and
in that case wait for real dev to get added first
and prevent memory leak by freeing iff.

fipvlan: creating netlink socket
fipvlan: sending RTM_GETLINK dump request
fipvlan: rtnl_listener_handler: error 0 Success
fipvlan: rtnl_listener_handler: may be error:0 pfd:1
fipvlan: RTM_NEWLINK: ifindex 5, type 1, flags 1003
fipvlan: rtnl_recv_newlink: error 19 No such device
fipvlan: rtnl_recv_newlink: VLAN found without parent
fipvlan: main: error 19 No such device
fipvlan: main: no interfaces to perform discovery on

Signed-off-by: Vasu Dev <[email protected]>
Tested-by: John Bishop <[email protected]>
---

 fipvlan.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/fipvlan.c b/fipvlan.c
index 5c10713..851932c 100644
--- a/fipvlan.c
+++ b/fipvlan.c
@@ -392,11 +392,11 @@ void rtnl_recv_newlink(struct nlmsghdr *nh)
                        parse_vlaninfo(vlan, linkinfo[IFLA_INFO_DATA]);
                        iff->vid = *(int *)RTA_DATA(vlan[IFLA_VLAN_ID]);
                        real_dev = find_vlan_real_dev(iff);
-                       if (!real_dev) {
-                               FIP_LOG_ERR(ENODEV, "VLAN found without 
parent");
-                               return;
-                       }
-                       TAILQ_INSERT_TAIL(&real_dev->vlans, iff, list_node);
+                       if (real_dev)
+                               TAILQ_INSERT_TAIL(&real_dev->vlans,
+                                                 iff, list_node);
+                       else
+                               free(iff);
                        return;
                }
                /* ignore bonding interfaces */

_______________________________________________
devel mailing list
[email protected]
https://lists.open-fcoe.org/mailman/listinfo/devel

Reply via email to