summaryrefslogtreecommitdiff
path: root/bgpd/bgp_zebra.c
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@vyatta.com>2009-05-21 08:51:03 -0700
committerPaul Jakma <paul@quagga.net>2009-06-18 20:18:28 +0100
commit0088b5dc55a91d27e572484e61df71b8ca2eddf4 (patch)
treef93714f98d12890f961794cd026b6bf2de75105e /bgpd/bgp_zebra.c
parentdde7258666fd73878b4cc10b4b5b7c07e9be049e (diff)
[bgpd] reference count the BGP instance
When a BGP instance is deleted with lots of routes and neighbors it is possible for the peer rsclient queue to run after bgp_delete has been called. This would lead to bgpd crashing, see https://bugzilla.vyatta.com/show_bug.cgi?id=3436 The fix is to add reference counting to the BGP instance and defer actual freeing until all references are gone. This patch also fixes a memory leak where the self-reference peer instance was being created but never freed. The check in bgp_clear_route is no longer valid because it is possible for it to be called when peer is in Deleted state during cleanup.
Diffstat (limited to 'bgpd/bgp_zebra.c')
0 files changed, 0 insertions, 0 deletions