summaryrefslogtreecommitdiffstats
path: root/pimd/pim_mroute.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_mroute.c')
-rw-r--r--pimd/pim_mroute.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c
index 866a19fc9..ca0582434 100644
--- a/pimd/pim_mroute.c
+++ b/pimd/pim_mroute.c
@@ -897,11 +897,11 @@ int pim_mroute_add(struct channel_oil *c_oil, const char *name)
int err;
int orig = 0;
int orig_iif_vif = 0;
- struct pim_interface *pim_reg_ifp;
- int orig_pimreg_ttl;
+ struct pim_interface *pim_reg_ifp = NULL;
+ int orig_pimreg_ttl = 0;
bool pimreg_ttl_reset = false;
- struct pim_interface *vxlan_ifp;
- int orig_term_ttl;
+ struct pim_interface *vxlan_ifp = NULL;
+ int orig_term_ttl = 0;
bool orig_term_ttl_reset = false;
pim->mroute_add_last = pim_time_monotonic_sec();
@@ -985,9 +985,11 @@ int pim_mroute_add(struct channel_oil *c_oil, const char *name)
if (c_oil->oil.mfcc_origin.s_addr == INADDR_ANY)
c_oil->oil.mfcc_ttls[c_oil->oil.mfcc_parent] = orig;
- if (pimreg_ttl_reset)
+ if (pimreg_ttl_reset) {
+ assert(pim_reg_ifp);
c_oil->oil.mfcc_ttls[pim_reg_ifp->mroute_vif_index] =
orig_pimreg_ttl;
+ }
if (orig_term_ttl_reset)
c_oil->oil.mfcc_ttls[vxlan_ifp->mroute_vif_index] =