summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJafar Al-Gharaibeh <jafar@atcorp.com>2024-12-13 09:36:28 -0600
committerGitHub <noreply@github.com>2024-12-13 09:36:28 -0600
commit330e2c68e1d4c653fa93c5b592fcba2f3a6e24c8 (patch)
tree121a9b9ae296c81482e54619bcc509edbdfaa058
parentb28ee727c9b88ee14983defc3c6f4e0b20ef573c (diff)
parent3b0b1adad72432c006a1e3683d99294ed4542c84 (diff)
Merge pull request #17635 from opensourcerouting/pim6-embedded-crash
pim6d: fix crash on clear ipv6 mroute
-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;