From 86bad1cb6e6b5c08a1aa24cf16d401ad872d1bd6 Mon Sep 17 00:00:00 2001 From: Xiao Liang Date: Tue, 15 Feb 2022 12:14:57 +0800 Subject: [PATCH] zebra: Lookup linked interface in link netns Look up linked interface in the correct netns, otherwise, either a wrong interface or NULL would be used. For example, enable VRF netns backend, and: ip netns add ns1 ip link add link eth0 link1 type macvlan ip link set link1 netns ns1 up Zebra will crash in zebra_vxlan_macvlan_up because zif->link is NULL. Signed-off-by: Xiao Liang --- zebra/if_netlink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zebra/if_netlink.c b/zebra/if_netlink.c index db8ee3236c..739edda3b5 100644 --- a/zebra/if_netlink.c +++ b/zebra/if_netlink.c @@ -1834,7 +1834,7 @@ int netlink_link_change(struct nlmsghdr *h, ns_id_t ns_id, int startup) ZEBRA_INTERFACE_VRF_LOOPBACK); /* Update link. */ - zebra_if_update_link(ifp, link_ifindex, ns_id); + zebra_if_update_link(ifp, link_ifindex, link_nsid); ifp->ll_type = netlink_to_zebra_link_type(ifi->ifi_type); @@ -1903,7 +1903,7 @@ int netlink_link_change(struct nlmsghdr *h, ns_id_t ns_id, int startup) memcpy(old_hw_addr, ifp->hw_addr, INTERFACE_HWADDR_MAX); /* Update link. */ - zebra_if_update_link(ifp, link_ifindex, ns_id); + zebra_if_update_link(ifp, link_ifindex, link_nsid); ifp->ll_type = netlink_to_zebra_link_type(ifi->ifi_type);