]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_mroute.c
Merge pull request #4522 from LabNConsulting/working/master/issue4479
[mirror_frr.git] / pimd / pim_mroute.c
index 866a19fc9831defe3fed610912782df567ef403e..2bdec12cd1a8f26e84efe823a0ba065e512d2ba7 100644 (file)
@@ -203,7 +203,8 @@ static int pim_mroute_msg_nocache(int fd, struct interface *ifp,
                 * and causing us to consider them.
                 */
                c_oil = pim_channel_oil_add(pim_ifp->pim, &sg,
-                                           pim_ifp->mroute_vif_index);
+                                           pim_ifp->mroute_vif_index,
+                                           __PRETTY_FUNCTION__);
                pim_mroute_add(c_oil, __PRETTY_FUNCTION__);
 
                return 0;
@@ -523,7 +524,8 @@ static int pim_mroute_msg_wrvifwhole(int fd, struct interface *ifp,
                        if (!up->channel_oil)
                                up->channel_oil = pim_channel_oil_add(
                                        pim_ifp->pim, &sg,
-                                       pim_ifp->mroute_vif_index);
+                                       pim_ifp->mroute_vif_index,
+                                       __PRETTY_FUNCTION__);
                        pim_upstream_inherited_olist(pim_ifp->pim, up);
                        if (!up->channel_oil->installed)
                                pim_mroute_add(up->channel_oil,
@@ -548,7 +550,8 @@ static int pim_mroute_msg_wrvifwhole(int fd, struct interface *ifp,
        }
 
        pim_ifp = ifp->info;
-       oil = pim_channel_oil_add(pim_ifp->pim, &sg, pim_ifp->mroute_vif_index);
+       oil = pim_channel_oil_add(pim_ifp->pim, &sg, pim_ifp->mroute_vif_index,
+                                 __PRETTY_FUNCTION__);
        if (!oil->installed)
                pim_mroute_add(oil, __PRETTY_FUNCTION__);
        if (pim_if_connected_to_source(ifp, sg.src)) {
@@ -897,11 +900,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 +988,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] =