diff options
author | paul <paul> | 2005-06-15 19:15:35 +0000 |
---|---|---|
committer | paul <paul> | 2005-06-15 19:15:35 +0000 |
commit | 1752d85e567d0efd943208d554a47ee36e64a8d1 (patch) | |
tree | cea821c016b1995757a14ec95ea1c5a64b82d289 | |
parent | 58f24a0270c6a3a390627ba2fda2d1c0a261ad7a (diff) | |
download | quagga-1752d85e567d0efd943208d554a47ee36e64a8d1.tar.bz2 quagga-1752d85e567d0efd943208d554a47ee36e64a8d1.tar.xz |
2005-06-15 Paul Jakma <paul.jakma@sun.com>
* bgpd.c: (bgp_terminate) workqueue's are lazy allocated and its
possible to terminate bgpd before workqueues were setup, causing
an abort/crash. Reported by Ashish Mehta of Sun.
-rw-r--r-- | bgpd/ChangeLog | 6 | ||||
-rw-r--r-- | bgpd/bgpd.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog index 254d5aff..6bd444d5 100644 --- a/bgpd/ChangeLog +++ b/bgpd/ChangeLog @@ -1,3 +1,9 @@ +2005-06-15 Paul Jakma <paul.jakma@sun.com> + + * bgpd.c: (bgp_terminate) workqueue's are lazy allocated and its + possible to terminate bgpd before workqueues were setup, causing + an abort/crash. Reported by Ashish Mehta of Sun. + 2005-06-01 Paul Jakma <paul.jakma@sun.com> * (general) refcount struct peer and bgp_info, hence allowing us diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 83cf9a8d..9473d6f8 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -4977,7 +4977,9 @@ bgp_terminate () BGP_NOTIFY_CEASE_PEER_UNCONFIG); bgp_cleanup_routes (); - work_queue_free (bm->process_main_queue); - work_queue_free (bm->process_rsclient_queue); + if (bm->process_main_queue) + work_queue_free (bm->process_main_queue); + if (bm->process_rsclient_queue) + work_queue_free (bm->process_rsclient_queue); } |