mirror of
https://github.com/isc-projects/bind9.git
synced 2026-04-22 23:01:43 -04:00
lib/isc/task.c: Fix invalid order of DbC checks that could cause dereference before NULL check
This commit is contained in:
parent
e8948fd9b4
commit
c662969da1
1 changed files with 7 additions and 2 deletions
|
|
@ -1573,10 +1573,12 @@ isc_taskmgr_excltask(isc_taskmgr_t *mgr0, isc_task_t **taskp) {
|
|||
isc_result_t
|
||||
isc_task_beginexclusive(isc_task_t *task0) {
|
||||
isc__task_t *task = (isc__task_t *)task0;
|
||||
isc__taskmgr_t *manager = task->manager;
|
||||
isc__taskmgr_t *manager;
|
||||
|
||||
REQUIRE(VALID_TASK(task));
|
||||
|
||||
manager = task->manager;
|
||||
|
||||
REQUIRE(task->state == task_state_running);
|
||||
|
||||
LOCK(&manager->excl_lock);
|
||||
|
|
@ -1605,10 +1607,13 @@ isc_task_beginexclusive(isc_task_t *task0) {
|
|||
void
|
||||
isc_task_endexclusive(isc_task_t *task0) {
|
||||
isc__task_t *task = (isc__task_t *)task0;
|
||||
isc__taskmgr_t *manager = task->manager;
|
||||
isc__taskmgr_t *manager;
|
||||
|
||||
REQUIRE(VALID_TASK(task));
|
||||
REQUIRE(task->state == task_state_running);
|
||||
|
||||
manager = task->manager;
|
||||
|
||||
LOCK(&manager->halt_lock);
|
||||
REQUIRE(atomic_load_relaxed(&manager->exclusive_req) == true);
|
||||
atomic_store_relaxed(&manager->exclusive_req, false);
|
||||
|
|
|
|||
Loading…
Reference in a new issue