diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-05-08 10:38:02 -0700 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-05-08 10:38:02 -0700 |
commit | 19c0bbbbedfe5b30e43edd7c5b5e5bf8f4947f1b (patch) | |
tree | c46f1d97ed96a71142f4b3cb2d57937d85eac59c | |
parent | 327d34a6a3dbbb3725a29ff6b04f1759b8799728 (diff) | |
download | quagga-19c0bbbbedfe5b30e43edd7c5b5e5bf8f4947f1b.tar.bz2 quagga-19c0bbbbedfe5b30e43edd7c5b5e5bf8f4947f1b.tar.xz |
Be safer in bgp_terminate
bgp_terminate is used when process SIGHUP, clear workqueue references
after freeing them.
-rw-r--r-- | bgpd/bgpd.c | 8 |
1 files 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; + } } |