mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-28 11:50:21 +00:00
pim6d: Fix crash in ipv6 pim command
Problem: Execute the below commands, pim6d core happens. interface ens193 ip address 69.0.0.2/24 ipv6 address 8000::1/120 ipv6 mld ipv6 pim We see crash only if the interface is not configured, and we are executing PIM/MLD commands. RootCause: Interface ens193 is not configured. So, it will have ifindex = 0 and mroute_vif_index = -1. Currently, we don't enable MLD on an interface if mroute_vif_index < 0. So, pim_ifp->MLD = NULL. In the API pim_if_membership_refresh(), we are accessing pim_ifp->MLD NULL pointer which leads to crash. Fix: Added NULL check before accessing pim_ifp->MLD pointer in the API pim_if_membership_refresh(). Issue: #13385 Signed-off-by: Sarita Patra <saritap@vmware.com>
This commit is contained in:
parent
2fccc9fa10
commit
6d1d2c27a3
@ -81,15 +81,17 @@ static void pim_if_membership_refresh(struct interface *ifp)
|
||||
|
||||
pim_ifp = ifp->info;
|
||||
assert(pim_ifp);
|
||||
#if PIM_IPV == 6
|
||||
gm_ifp = pim_ifp->mld;
|
||||
#endif
|
||||
|
||||
if (!pim_ifp->pim_enable)
|
||||
return;
|
||||
if (!pim_ifp->gm_enable)
|
||||
return;
|
||||
|
||||
#if PIM_IPV == 6
|
||||
gm_ifp = pim_ifp->mld;
|
||||
if (!gm_ifp)
|
||||
return;
|
||||
#endif
|
||||
/*
|
||||
* First clear off membership from all PIM (S,G) entries on the
|
||||
* interface
|
||||
|
Loading…
Reference in New Issue
Block a user