From: Evan Hunt Date: Fri, 4 Dec 2015 04:49:28 +0000 (-0800) Subject: [master] isc__taskmgr_pause() could deadlock X-Git-Tag: v9.11.0a1~287 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=226dd20bbd6c6bdeadffa71361d9a0ec61308d69;p=thirdparty%2Fbind9.git [master] isc__taskmgr_pause() could deadlock 4271. [test] Unit tests could deadlock in isc__taskmgr_pause(). [RT #41235] --- diff --git a/CHANGES b/CHANGES index c3c0ebc7dec..7a2fb96666c 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +4271. [test] Unit tests could deadlock in isc__taskmgr_pause(). + [RT #41235] + 4270. [security] Update allowed OpenSSL versions as named is potentially vulnerable to CVE-2015-3193. diff --git a/lib/isc/task.c b/lib/isc/task.c index e8a0430cbd1..ac049a75528 100644 --- a/lib/isc/task.c +++ b/lib/isc/task.c @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - /*! \file * \author Principal Author: Bob Halley */ @@ -1665,11 +1663,11 @@ isc__taskmgr_dispatch(isc_taskmgr_t *manager0) { void isc__taskmgr_pause(isc_taskmgr_t *manager0) { isc__taskmgr_t *manager = (isc__taskmgr_t *)manager0; + manager->pause_requested = ISC_TRUE; LOCK(&manager->lock); while (manager->tasks_running > 0) { WAIT(&manager->paused, &manager->lock); } - manager->pause_requested = ISC_TRUE; UNLOCK(&manager->lock); }