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.