mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-29 15:07:51 +00:00
pimd: Fix possible crash when leaving a channel
When leaving a channel, there exists a possibility that we have not created the channel oil yet. Ensure that we have channel oil before dereferencing Ticket: CM-13522 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
b76d6e718e
commit
b72f79a92b
@ -905,7 +905,7 @@ void pim_ifchannel_local_membership_del(struct interface *ifp,
|
|||||||
buff, ifp->name, pim_str_sg_dump (&child->sg));
|
buff, ifp->name, pim_str_sg_dump (&child->sg));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pim_upstream_evaluate_join_desired (child))
|
if (c_oil && !pim_upstream_evaluate_join_desired (child))
|
||||||
pim_channel_del_oif (c_oil, ifp, PIM_OIF_FLAG_PROTO_PIM);
|
pim_channel_del_oif (c_oil, ifp, PIM_OIF_FLAG_PROTO_PIM);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -913,7 +913,7 @@ void pim_ifchannel_local_membership_del(struct interface *ifp,
|
|||||||
* has output here then the *,G was supplying the implied
|
* has output here then the *,G was supplying the implied
|
||||||
* if channel. So remove it.
|
* if channel. So remove it.
|
||||||
*/
|
*/
|
||||||
if (!chchannel && c_oil->oil.mfcc_ttls[pim_ifp->mroute_vif_index])
|
if (!chchannel && c_oil && c_oil->oil.mfcc_ttls[pim_ifp->mroute_vif_index])
|
||||||
pim_channel_del_oif (c_oil, ifp, PIM_OIF_FLAG_PROTO_PIM);
|
pim_channel_del_oif (c_oil, ifp, PIM_OIF_FLAG_PROTO_PIM);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user