summaryrefslogtreecommitdiff
path: root/pimd/pim6_mld.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim6_mld.c')
-rw-r--r--pimd/pim6_mld.c7
1 files changed, 7 insertions, 0 deletions
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.