summaryrefslogtreecommitdiff
path: root/bgpd/bgpd.c
diff options
context:
space:
mode:
authorhasso <hasso>2005-05-26 22:12:33 +0000
committerhasso <hasso>2005-05-26 22:12:33 +0000
commit54a6ed38ac38777f5c2966f74a85cc12659efc87 (patch)
treed38112804dd53e9305514feb3d570a5214085745 /bgpd/bgpd.c
parent500e418921b0a2141e182a346f8d32864516236d (diff)
* 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.c5
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);