summaryrefslogtreecommitdiff
path: root/zebra/if_netlink.c
diff options
context:
space:
mode:
authorXiao Liang <shaw.leon@gmail.com>2022-02-15 12:14:57 +0800
committerXiao Liang <shaw.leon@gmail.com>2022-02-28 12:12:15 +0800
commit86bad1cb6e6b5c08a1aa24cf16d401ad872d1bd6 (patch)
tree400229fa1ba780fdb6d964eb744ede4fafd2ba9f /zebra/if_netlink.c
parentae45a630222b53b02d8fc7cd84bb24d8744cd09c (diff)
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 <shaw.leon@gmail.com>
Diffstat (limited to 'zebra/if_netlink.c')
-rw-r--r--zebra/if_netlink.c4
1 files 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);