mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
4228. [bug] Address race condition in dns_client_destroyrestrans.
[RT #40605]
This commit is contained in:
parent
3739c1beae
commit
8a0b6b3901
2 changed files with 10 additions and 1 deletions
3
CHANGES
3
CHANGES
|
|
@ -1,3 +1,6 @@
|
|||
4228. [bug] Address race condition in dns_client_destroyrestrans.
|
||||
[RT #40605]
|
||||
|
||||
4227. [bug] Silence static analysis warnings. [RT #40828]
|
||||
|
||||
4226. [bug] Address a theoretical shutdown race in
|
||||
|
|
|
|||
|
|
@ -1178,7 +1178,6 @@ client_resfind(resctx_t *rctx, dns_fetchevent_t *event) {
|
|||
UNLOCK(&rctx->lock);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
suspend(isc_task_t *task, isc_event_t *event) {
|
||||
isc_appctx_t *actx = event->ev_arg;
|
||||
|
|
@ -1498,6 +1497,13 @@ dns_client_destroyrestrans(dns_clientrestrans_t **transp) {
|
|||
mctx = client->mctx;
|
||||
dns_view_detach(&rctx->view);
|
||||
|
||||
/*
|
||||
* Wait for the lock in client_resfind to be released before
|
||||
* destroying the lock.
|
||||
*/
|
||||
LOCK(&rctx->lock);
|
||||
UNLOCK(&rctx->lock);
|
||||
|
||||
LOCK(&client->lock);
|
||||
|
||||
INSIST(ISC_LINK_LINKED(rctx, link));
|
||||
|
|
|
|||
Loading…
Reference in a new issue