diff options
Diffstat (limited to 'bgpd')
| -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);  } | 
