summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pimd/pim_mroute.c4
-rw-r--r--pimd/pim_upstream.c12
2 files changed, 16 insertions, 0 deletions
diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c
index d0cd27008..b1c55c1f4 100644
--- a/pimd/pim_mroute.c
+++ b/pimd/pim_mroute.c
@@ -201,6 +201,10 @@ static int pim_mroute_msg_nocache(int fd, struct interface *ifp,
* Let's blackhole those packets for the moment
* As that they will be coming up to the cpu
* and causing us to consider them.
+ *
+ * This *will* create a dangling channel_oil
+ * that I see no way to get rid of. Just noting
+ * this for future reference.
*/
c_oil = pim_channel_oil_add(pim_ifp->pim, &sg,
pim_ifp->mroute_vif_index,
diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c
index 2e6c5c780..194fb2cff 100644
--- a/pimd/pim_upstream.c
+++ b/pimd/pim_upstream.c
@@ -770,6 +770,18 @@ static struct pim_upstream *pim_upstream_new(struct pim_instance *pim,
up->channel_oil = pim_channel_oil_add(
pim, &up->sg, pim_ifp->mroute_vif_index,
__PRETTY_FUNCTION__);
+ else {
+ /*
+ * Yeah this should not happen
+ * but let's be sure that we are not
+ * doing something stupid, all paths
+ * through upstream creation will
+ * create a channel oil
+ */
+ up->channel_oil = pim_channel_oil_add(
+ pim, &up->sg, MAXVIFS,
+ __PRETTY_FUNCTION__);
+ }
}
}