mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 13:27:53 +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>
(cherry picked from commit 6d1d2c27a3
)
This commit is contained in:
parent
6034c57d08
commit
0e1bf2a4d8
@ -94,15 +94,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