pimd: Fix some small crashes in pim

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2017-06-29 09:20:42 -04:00
parent 9c80de2434
commit 1e7a3a2a53
2 changed files with 8 additions and 1 deletions

View File

@ -568,7 +568,7 @@ struct pim_ifchannel *pim_ifchannel_add(struct interface *ifp,
__PRETTY_FUNCTION__, pim_str_sg_dump(sg), ifp->name); __PRETTY_FUNCTION__, pim_str_sg_dump(sg), ifp->name);
pim_ifchannel_remove_children(ch); pim_ifchannel_remove_children(ch);
if (ch) if (ch->sources)
list_delete(ch->sources); list_delete(ch->sources);
listnode_delete(pim_ifp->pim_ifchannel_list, ch); listnode_delete(pim_ifp->pim_ifchannel_list, ch);

View File

@ -1362,6 +1362,13 @@ static int pim_upstream_register_stop_timer(struct thread *t)
return 0; return 0;
} }
rpg = RP(pim_ifp->pim, up->sg.grp); rpg = RP(pim_ifp->pim, up->sg.grp);
if (!rpg) {
if (PIM_DEBUG_TRACE)
zlog_debug(
"%s: Cannot send register for %s no RPF to the RP",
__PRETTY_FUNCTION__, up->sg_str);
return 0;
}
memset(&ip_hdr, 0, sizeof(struct ip)); memset(&ip_hdr, 0, sizeof(struct ip));
ip_hdr.ip_p = PIM_IP_PROTO_PIM; ip_hdr.ip_p = PIM_IP_PROTO_PIM;
ip_hdr.ip_hl = 5; ip_hdr.ip_hl = 5;