Commit 8a0b6b39 authored by Mark Andrews's avatar Mark Andrews
Browse files

4228. [bug] Address race condition in dns_client_destroyrestrans.

                        [RT #40605]
parent 3739c1be
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));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment