diff options
| author | Rafael Zalamena <rzalamena@opensourcerouting.org> | 2024-09-29 11:04:39 -0300 | 
|---|---|---|
| committer | Rafael Zalamena <rzalamena@opensourcerouting.org> | 2024-11-13 12:05:35 -0300 | 
| commit | 3b1fc6fb442db609a2abc46f8ecf73f85bd6618f (patch) | |
| tree | 28c89d3ec0fbd482c101812073b92dcc7d08be37 /pimd/pim6_mld.c | |
| parent | 084fa66d74b20b16f9e2d03f5ea7f6e4e307edae (diff) | |
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 <rzalamena@opensourcerouting.org>
Diffstat (limited to 'pimd/pim6_mld.c')
| -rw-r--r-- | pimd/pim6_mld.c | 7 | 
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.  | 
