]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: memory leak issue fix
authorSamanvitha B Bhargav <bsamanvitha@vmware.com>
Wed, 21 Sep 2022 08:57:09 +0000 (01:57 -0700)
committerSamanvitha B Bhargav <bsamanvitha@vmware.com>
Wed, 21 Sep 2022 08:57:09 +0000 (01:57 -0700)
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 <bsmanvitha@vmware.com>
bgpd/bgpd.c

index 4c151b2d374398862e00ee88758dabfe40b943fd..919d3f034dc206d03e3643d388a2ba921627e571 100644 (file)
@@ -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))