]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Always call dns_adb_endudpfetch() in fctx_cancelquery() for UDP queries
authorAram Sargsyan <aram@isc.org>
Fri, 21 Oct 2022 08:08:47 +0000 (08:08 +0000)
committerAram Sargsyan <aram@isc.org>
Fri, 21 Oct 2022 08:08:47 +0000 (08:08 +0000)
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

index 3f3c5f96c545fb85859e09a97208568eaf71ba47..70fd0c204e6af50cde410a8bcac528cc2637afda 100644 (file)
@@ -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);
        }
 
        /*