Merge branch '3259-cid-351372-concurrent-data-access-violations-atomicity' into 'main'

Resolve "CID 351372:  Concurrent data access violations  (ATOMICITY)"

Closes #3259

See merge request isc-projects/bind9!6090
This commit is contained in:
Mark Andrews 2022-04-06 07:53:59 +00:00
commit 4216c72d13

View file

@ -215,17 +215,10 @@ timer_purge(isc_timer_t *timer) {
isc_timerevent_t *event = NULL;
while ((event = ISC_LIST_HEAD(timer->active)) != NULL) {
timerevent_unlink(timer, event);
UNLOCK(&timer->lock);
bool purged = isc_task_purgeevent(timer->task,
(isc_event_t *)event);
(void)isc_task_purgeevent(timer->task, (isc_event_t *)event);
LOCK(&timer->lock);
if (!purged) {
/*
* The event has already been executed, but not
* yet destroyed.
*/
timerevent_unlink(timer, event);
}
}
}