mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 08:32:12 +00:00
![]() Previous patch was not sufficient to make sure the pointers get nulled. Reason being is that vrrp_lookup_by_if_mvl() follows the link_ifindex on the provided interface to acquire the base ifp, which is then used to lookup the VR. However, because FRR's interface management is straight up insane, it's possible that we delete the base interface before its children. When this happens, link_ifindex is still valid for the macvlan device but we have no interface corresponding to that ifindex, so our lookup will fail. Consequently vrrp_lookup_by_if_mvl() can't be used if we are handling deletion of any sort. Instead we have to loop through every VR and check the pointers. Also, there's no null check on the mvl_ifp pointer in vrrp_shutdown(), and even though we log that we're returning early from it, we actually don't. Do both of these things. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com> |
||
---|---|---|
.. | ||
.gitignore | ||
Makefile | ||
subdir.am | ||
vrrp_arp.c | ||
vrrp_arp.h | ||
vrrp_debug.c | ||
vrrp_debug.h | ||
vrrp_main.c | ||
vrrp_ndisc.c | ||
vrrp_ndisc.h | ||
vrrp_northbound.c | ||
vrrp_packet.c | ||
vrrp_packet.h | ||
vrrp_vty.c | ||
vrrp_vty.h | ||
vrrp_zebra.c | ||
vrrp_zebra.h | ||
vrrp.c | ||
vrrp.h |