From: Rafael Zalamena Date: Sun, 29 Sep 2024 14:04:39 +0000 (-0300) Subject: pim6d: fix channel oil leak on embedded RP X-Git-Tag: base_10.3~237^2~2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=3b1fc6fb442db609a2abc46f8ecf73f85bd6618f;p=matthieu%2Ffrr.git pim6d: fix channel oil leak on embedded RP When a multicast route is created with embedded RP the channel oil never gets decremented when `clear ipv6 mroute` is called. Signed-off-by: Rafael Zalamena --- diff --git a/pimd/pim6_mld.c b/pimd/pim6_mld.c index 97e110e384..b44169c522 100644 --- a/pimd/pim6_mld.c +++ b/pimd/pim6_mld.c @@ -444,6 +444,13 @@ static void gm_sg_update(struct gm_sg *sg, bool has_expired) } if (desired == GM_SG_NOINFO) { + /* + * If oil is still present then get ride of it or we will leak + * this data structure. + */ + if (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 * another path.