diff options
| author | Xiao Liang <shaw.leon@gmail.com> | 2022-02-15 12:14:57 +0800 |
|---|---|---|
| committer | Xiao Liang <shaw.leon@gmail.com> | 2022-02-28 12:12:15 +0800 |
| commit | 86bad1cb6e6b5c08a1aa24cf16d401ad872d1bd6 (patch) | |
| tree | 400229fa1ba780fdb6d964eb744ede4fafd2ba9f /zebra/if_netlink.c | |
| parent | ae45a630222b53b02d8fc7cd84bb24d8744cd09c (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.c | 4 |
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); |
