From b4d130923622dca9592c67f3f580af0ff5aaf342 Mon Sep 17 00:00:00 2001 From: Philippe Guibert Date: Fri, 4 May 2018 09:26:10 +0200 Subject: [PATCH] zebra: avoid case where same interface pointer returned When checking for a duplicate interface in an other NETNS, one may find an interface in default VRF. That interface may have been moved to that default VRF, for further action. Prevent from doing any action at this point. Signed-off-by: Philippe Guibert --- zebra/if_netlink.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/zebra/if_netlink.c b/zebra/if_netlink.c index beac8ffedb..7423e9237f 100644 --- a/zebra/if_netlink.c +++ b/zebra/if_netlink.c @@ -1040,6 +1040,12 @@ static void if_netlink_check_ifp_instance_consistency(uint16_t cmd, other_ifp = if_lookup_by_name_not_ns(ns_id, ifp->name); if (!other_ifp) return; + /* because previous interface may be inactive, + * interface is moved back to default vrf + * then one may find the same pointer; ignore + */ + if (other_ifp == ifp) + return; if ((cmd == RTM_NEWLINK) && (CHECK_FLAG(other_ifp->status, ZEBRA_INTERFACE_ACTIVE))) return; -- 2.39.5