summaryrefslogtreecommitdiff
path: root/pimd
diff options
context:
space:
mode:
authorRafael Zalamena <rzalamena@opensourcerouting.org>2024-12-11 10:39:36 -0300
committerRafael Zalamena <rzalamena@opensourcerouting.org>2024-12-11 10:39:36 -0300
commit3b0b1adad72432c006a1e3683d99294ed4542c84 (patch)
tree852ebfb79085fc8cb138c60134def5cdff3bb2f8 /pimd
parentccb57ad10f81af33256761d18adaf37eb776e9d2 (diff)
pim6d: fix crash on clear ipv6 mroute
Fix crash on `clear ipv6 mroute` when using embedded RP. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Diffstat (limited to 'pimd')
-rw-r--r--pimd/pim6_mld.c2
-rw-r--r--pimd/pim_tib.c7
2 files changed, 2 insertions, 7 deletions
diff --git a/pimd/pim6_mld.c b/pimd/pim6_mld.c
index b44169c522..acfb0c3af3 100644
--- a/pimd/pim6_mld.c
+++ b/pimd/pim6_mld.c
@@ -449,7 +449,7 @@ static void gm_sg_update(struct gm_sg *sg, bool has_expired)
* this data structure.
*/
if (sg->oil)
- pim_channel_oil_del(sg->oil, __func__);
+ sg->oil = pim_channel_oil_del(sg->oil, __func__);
/* multiple paths can lead to the last state going away;
* t_sg_expire can still be running if we're arriving from
diff --git a/pimd/pim_tib.c b/pimd/pim_tib.c
index e21793b8ca..2786ba440d 100644
--- a/pimd/pim_tib.c
+++ b/pimd/pim_tib.c
@@ -115,13 +115,8 @@ bool tib_sg_gm_join(struct pim_instance *pim, pim_sgaddr sg,
return false;
}
- if (!*oilp) {
+ if (!*oilp)
*oilp = tib_sg_oil_setup(pim, sg, oif);
-#if PIM_IPV == 6
- if (pim_embedded_rp_is_embedded(&sg.grp))
- (*oilp)->oil_ref_count--;
-#endif /* PIM_IPV == 6 */
- }
if (!*oilp)
return false;