summaryrefslogtreecommitdiffstats
path: root/bgpd
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2015-09-16 13:17:56 -0400
committerPaul Jakma <paul@quagga.net>2015-09-24 15:26:44 +0100
commitb3eeabee657df14509ce50d5f64262b672e87d62 (patch)
tree81b2a1382e84f4c0754c6c3814222b90106f04b5 /bgpd
parent104576dcafe356985326b2950bfc50962702b4fb (diff)
downloadquagga-b3eeabee657df14509ce50d5f64262b672e87d62.tar.bz2
quagga-b3eeabee657df14509ce50d5f64262b672e87d62.tar.xz
bgpd: Fix 'struct peer' memory leaks
peer_delete has been written to handle the peer->group pointer and to remove the peer from the peer group if it exists upon deletion being called. Shutdown/deletion Code was intentionally setting the peer-group to NULL prior to calling peer_delete. This leaked the memory associated with the peer->group because of refcnt accounting. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgpd.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index f77aa724..00680372 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -1696,7 +1696,6 @@ peer_group_delete (struct peer_group *group)
for (ALL_LIST_ELEMENTS (group->peer, node, nnode, peer))
{
- peer->group = NULL;
peer_delete (peer);
}
list_delete (group->peer);
@@ -1726,7 +1725,6 @@ peer_group_remote_as_delete (struct peer_group *group)
for (ALL_LIST_ELEMENTS (group->peer, node, nnode, peer))
{
- peer->group = NULL;
peer_delete (peer);
}
list_delete_all_node (group->peer);