]> git.puffer.fish Git - mirror/frr.git/commitdiff
pim6d: fix crash on clear ipv6 mroute 17635/head
authorRafael Zalamena <rzalamena@opensourcerouting.org>
Wed, 11 Dec 2024 13:39:36 +0000 (10:39 -0300)
committerRafael Zalamena <rzalamena@opensourcerouting.org>
Wed, 11 Dec 2024 13:39:36 +0000 (10:39 -0300)
Fix crash on `clear ipv6 mroute` when using embedded RP.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
pimd/pim6_mld.c
pimd/pim_tib.c

index b44169c522f1f7d615b752e59e0a4ac9b1b0dfaa..acfb0c3af3e002cd4f94a015c5c275afc4a8814e 100644 (file)
@@ -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
index e21793b8caafb6d32927c049635ff16ac2d40236..2786ba440d15b4febc0ab2c2bd97da055bd47c41 100644 (file)
@@ -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;