diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2020-11-14 18:35:21 -0500 |
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2020-11-14 18:35:21 -0500 |
| commit | 3d1c148b07c7c81e98fd3059100bd84ba92c4546 (patch) | |
| tree | 4122bbfa8209e43c516a0cf2be9c796bbdc1ad29 | |
| parent | d53e72e5942291eb8c1b81ae6dcb320ef6194ec6 (diff) | |
bgpd: If using filters free up name on peer deletion
FRR was not properly deleting the aname and cnmae
memory that was allocated if bgp is using filters.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| -rw-r--r-- | bgpd/bgpd.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 26c4579013..b773c16b57 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -1094,6 +1094,15 @@ static void peer_free(struct peer *peer) bgp_delete_connected_nexthop(family2afi(peer->su.sa.sa_family), peer); + FOREACH_AFI_SAFI (afi, safi) { + if (peer->filter[afi][safi].advmap.aname) + XFREE(MTYPE_BGP_FILTER_NAME, + peer->filter[afi][safi].advmap.aname); + if (peer->filter[afi][safi].advmap.cname) + XFREE(MTYPE_BGP_FILTER_NAME, + peer->filter[afi][safi].advmap.cname); + } + XFREE(MTYPE_PEER_TX_SHUTDOWN_MSG, peer->tx_shutdown_message); XFREE(MTYPE_PEER_DESC, peer->desc); @@ -1121,12 +1130,8 @@ static void peer_free(struct peer *peer) bfd_info_free(&(peer->bfd_info)); - for (afi = AFI_IP; afi < AFI_MAX; afi++) { - for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) { - bgp_addpath_set_peer_type(peer, afi, safi, - BGP_ADDPATH_NONE); - } - } + FOREACH_AFI_SAFI (afi, safi) + bgp_addpath_set_peer_type(peer, afi, safi, BGP_ADDPATH_NONE); bgp_unlock(peer->bgp); |
