diff --git a/CHANGES b/CHANGES index 0b3373f831..38ae0d8f3b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +4146. [bug] Address reference leak that could prevent a clean + shutdown. [RT #37125] + 4145. [bug] Not all unassociated adb entries where being printed. [RT #37125] diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 48a7aa85ac..e6dde5cbaf 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -1686,6 +1686,11 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, if (query->dispatch != NULL) dns_dispatch_detach(&query->dispatch); + LOCK(&res->buckets[fctx->bucketnum].lock); + INSIST(fctx->references > 1); + fctx->references--; + UNLOCK(&res->buckets[fctx->bucketnum].lock); + cleanup_query: if (query->connects == 0) { query->magic = 0;