mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-11 13:09:58 -04:00
lib/isc/task.c: Fix invalid order of DbC checks that could cause dereference before NULL check
(cherry picked from commit c662969da1)
This commit is contained in:
parent
4acf396f83
commit
d6de4edc41
1 changed files with 7 additions and 2 deletions
|
|
@ -1570,10 +1570,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);
|
||||
|
|
@ -1602,10 +1604,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