From: Philippe Guibert Date: Fri, 4 May 2018 07:26:10 +0000 (+0200) Subject: zebra: avoid case where same interface pointer returned X-Git-Tag: frr-6.1-dev~453^2~2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=5efbf310549f60de33946d0de3399d5586f6896a;p=mirror%2Ffrr.git 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 --- 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;