diff options
author | hasso <hasso> | 2005-05-26 22:12:33 +0000 |
---|---|---|
committer | hasso <hasso> | 2005-05-26 22:12:33 +0000 |
commit | 579dd6cd48ae1e81e66080f15eb0d407a552d2e8 (patch) | |
tree | f8b89ece218e37158ccee10c2a7bb0dd7c20fe36 /bgpd/bgpd.c | |
parent | 95074be049f11397553ede6f2dd50794929f3cbe (diff) | |
download | quagga-579dd6cd48ae1e81e66080f15eb0d407a552d2e8.tar.bz2 quagga-579dd6cd48ae1e81e66080f15eb0d407a552d2e8.tar.xz |
* bgpd.c: Deleting bgp->rsclient list needs fix similar to pree-groups
deleting fix. Avoid leaking bgp->group, bgp->peer and bgp->rsclient
lists.
[backport candidate]
Diffstat (limited to 'bgpd/bgpd.c')
-rw-r--r-- | bgpd/bgpd.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index f9696610..e3033959 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -1930,11 +1930,14 @@ bgp_delete (struct bgp *bgp) for (ALL_LIST_ELEMENTS (bgp->group, node, next, group)) peer_group_delete (group); + list_delete (bgp->group); for (ALL_LIST_ELEMENTS (bgp->peer, node, next, peer)) peer_delete (peer); + list_delete (bgp->peer); - bgp->rsclient->del = (void (*)(void *)) peer_delete; + for (ALL_LIST_ELEMENTS (bgp->rsclient, node, next, peer)) + peer_delete (peer); list_delete (bgp->rsclient); listnode_delete (bm->bgp, bgp); |