From: Donald Sharp Date: Wed, 11 Apr 2018 13:20:19 +0000 (-0400) Subject: bgpd: Fix memory leak on shutdown X-Git-Tag: frr-5.0-dev~10^2~17 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=d39ac3eb76dafb0770e1a1004ae2fb675c09a81e;p=matthieu%2Ffrr.git bgpd: Fix memory leak on shutdown When we remove a bgp instance cleanup the import_vrf and export_vrf lists. Signed-off-by: Donald Sharp --- diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 53ddbf61cc..ccfa90419b 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -3380,6 +3380,17 @@ void bgp_free(struct bgp *bgp) rmap = &bgp->table_map[afi][safi]; if (rmap->name) XFREE(MTYPE_ROUTE_MAP_NAME, rmap->name); + + /* + * Yes this is per AFI, but + * the list_delete_and_null nulls the pointer + * and we'll not leak anything on going down + * and the if test will fail on the second safi. + */ + if (bgp->vpn_policy[afi].import_vrf) + list_delete_and_null(&bgp->vpn_policy[afi].import_vrf); + if (bgp->vpn_policy[afi].export_vrf) + list_delete_and_null(&bgp->vpn_policy[afi].export_vrf); } bgp_scan_finish(bgp);