From 19c0bbbbedfe5b30e43edd7c5b5e5bf8f4947f1b Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Fri, 8 May 2009 10:38:02 -0700 Subject: Be safer in bgp_terminate bgp_terminate is used when process SIGHUP, clear workqueue references after freeing them. --- bgpd/bgpd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index bbc2377f..f1d78389 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -5067,9 +5067,13 @@ bgp_terminate (void) BGP_NOTIFY_CEASE_PEER_UNCONFIG); bgp_cleanup_routes (); - if (bm->process_main_queue) + if (bm->process_main_queue) { work_queue_free (bm->process_main_queue); - if (bm->process_rsclient_queue) + bm->process_main_queue = NULL; + } + if (bm->process_rsclient_queue) { work_queue_free (bm->process_rsclient_queue); + bm->process_rsclient_queue = NULL; + } } -- cgit v1.2.3