summaryrefslogtreecommitdiff
path: root/pimd/pim_igmp_mtrace.c
diff options
context:
space:
mode:
authorSarita Patra <saritap@vmware.com>2019-02-22 01:59:07 -0800
committerSarita Patra <saritap@vmware.com>2019-02-24 21:26:58 -0800
commit957d93eaf2ce5fe4969b406dc5e44677bf60ce5b (patch)
treef993a2975b1dcb9f9d6f6a741db3860290319193 /pimd/pim_igmp_mtrace.c
parentd8bed89dca5955fe298c108afe78b13a95469cea (diff)
pimd: Handling Null incoming interface of dummy upstream
When FRR receives IGMP/PIM (*, G) join and RP is not configured or not reachable, then we are creating a dummy upstream with incoming interface as NULL and upstream address as INADDR_ANY. Added upstream address and incoming interface validation where it is necessary, before doing any operation on the upstream. Signed-off-by: Sarita Patra <saritap@vmware.com>
Diffstat (limited to 'pimd/pim_igmp_mtrace.c')
-rw-r--r--pimd/pim_igmp_mtrace.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/pimd/pim_igmp_mtrace.c b/pimd/pim_igmp_mtrace.c
index 1fb624a6a0..f51e0c0d2f 100644
--- a/pimd/pim_igmp_mtrace.c
+++ b/pimd/pim_igmp_mtrace.c
@@ -133,6 +133,13 @@ static bool mtrace_fwd_info(struct pim_instance *pim,
if (!up)
return false;
+ if (!up->rpf.source_nexthop.interface) {
+ if (PIM_DEBUG_TRACE)
+ zlog_debug("%s: up %s RPF is not present",
+ __PRETTY_FUNCTION__, up->sg_str);
+ return false;
+ }
+
ifp_in = up->rpf.source_nexthop.interface;
nh_addr = up->rpf.source_nexthop.mrib_nexthop_addr.u.prefix4;
total = htonl(MTRACE_UNKNOWN_COUNT);