summaryrefslogtreecommitdiff
path: root/pimd/pim_join.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2016-09-27 19:59:34 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2016-12-21 20:26:11 -0500
commit8ccbc80f01ca6181e1b00c033389a79d87dbc70e (patch)
tree4f295dfac871709e50c2ffa93c7b873b02b7557a /pimd/pim_join.c
parent8151e2865c405e569ad180074a2be7b7c0d71425 (diff)
pimd: Fix crash when looking at S,G from *,G
When looping over S,G's associated with a *,G, there can exist situations where we have not created the channel oil for the S,G yet. Don't allow this to crash the system. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_join.c')
-rw-r--r--pimd/pim_join.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/pimd/pim_join.c b/pimd/pim_join.c
index c92be18ddf..08c1c7b93a 100644
--- a/pimd/pim_join.c
+++ b/pimd/pim_join.c
@@ -210,6 +210,8 @@ static void recv_prune(struct interface *ifp,
__FILE__, __PRETTY_FUNCTION__,
buff, pim_str_sg_dump (&child->sg));
}
+ if (!c_oil)
+ continue;
if (!pim_upstream_evaluate_join_desired (child))
pim_channel_del_oif (c_oil, ifp, PIM_OIF_FLAG_PROTO_PIM);