From 2305e3e46097474246a279c05bd62b8573f83a08 Mon Sep 17 00:00:00 2001 From: Samanvitha B Bhargav Date: Wed, 21 Sep 2022 01:57:09 -0700 Subject: [PATCH] bgpd: memory leak issue fix Memory allocated when 'import vrf route maps <>' is configured, wasn't being freed when the entire bgp config was deleted through 'no router bgp'. Signed-off-by: Samanvitha B Bhargav --- bgpd/bgpd.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 4c151b2d3..919d3f034 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -3713,6 +3713,17 @@ int bgp_delete(struct bgp *bgp) bgp->vpn_policy[afi].import_redirect_rtlist = NULL; } + /* Free any memory allocated to holding routemap references */ + for (afi = 0; afi < AFI_MAX; ++afi) { + for (enum vpn_policy_direction dir = 0; + dir < BGP_VPN_POLICY_DIR_MAX; ++dir) { + if (bgp->vpn_policy[afi].rmap_name[dir]) + XFREE(MTYPE_ROUTE_MAP_NAME, + bgp->vpn_policy[afi].rmap_name[dir]); + bgp->vpn_policy[afi].rmap[dir] = NULL; + } + } + /* Deregister from Zebra, if needed */ if (IS_BGP_INST_KNOWN_TO_ZEBRA(bgp)) { if (BGP_DEBUG(zebra, ZEBRA)) -- 2.39.5