]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Fix memory leaks on shutdown
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 2 Mar 2017 01:26:06 +0000 (20:26 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 2 Mar 2017 01:26:06 +0000 (20:26 -0500)
The original code on shutdown assumed a 'forced' mode
if there was no process_main_queue.  This construct
was violated by commit 2e02b9b2d1ed29975001d6917f9f726854ec5559
due to not fully understanding the shutdown process.

If we are shutting down, don't store work to do later,
just gracefully don't do it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd/bgp_route.c

index 353ecd6934d0acaa05c8d5f3f9a80f6dd5b078c7..b19fe96376b4b2e1cd1189aa0dc44d7230f7870d 100644 (file)
@@ -2062,7 +2062,7 @@ bgp_process (struct bgp *bgp, struct bgp_node *rn, afi_t afi, safi_t safi)
     return;
 
   if (bm->process_main_queue == NULL)
-    bgp_process_queue_init ();
+    return;
 
   pqnode = XCALLOC (MTYPE_BGP_PROCESS_QUEUE, 
                     sizeof (struct bgp_process_queue));
@@ -2087,7 +2087,7 @@ bgp_add_eoiu_mark (struct bgp *bgp)
   struct bgp_process_queue *pqnode;
 
   if (bm->process_main_queue == NULL)
-    bgp_process_queue_init ();
+    return;
 
   pqnode = XCALLOC (MTYPE_BGP_PROCESS_QUEUE,
                     sizeof (struct bgp_process_queue));