From e4569373ca05e2e1c1c04d2b81c1b592acf927e5 Mon Sep 17 00:00:00 2001 From: Aram Sargsyan Date: Fri, 21 Oct 2022 08:08:47 +0000 Subject: [PATCH] Always call dns_adb_endudpfetch() in fctx_cancelquery() for UDP queries It is currently possible that dns_adb_endudpfetch() is not called in fctx_cancelquery() for a UDP query, which results in quotas not being adjusted back. Always call dns_adb_endudpfetch() for UDP queries. --- lib/dns/resolver.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 3f3c5f96c5..70fd0c204e 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -1427,11 +1427,11 @@ fctx_cancelquery(resquery_t **queryp, isc_time_t *finish, bool no_response, } dns_adb_adjustsrtt(fctx->adb, query->addrinfo, rtt, factor); + } - if ((query->options & DNS_FETCHOPT_TCP) == 0) { - /* Inform the ADB that we're ending a UDP fetch */ - dns_adb_endudpfetch(fctx->adb, query->addrinfo); - } + if ((query->options & DNS_FETCHOPT_TCP) == 0) { + /* Inform the ADB that we're ending a UDP fetch */ + dns_adb_endudpfetch(fctx->adb, query->addrinfo); } /*