]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix a bug in get_request_transport_type()
authorAram Sargsyan <aram@isc.org>
Wed, 5 Mar 2025 09:58:32 +0000 (09:58 +0000)
committerAram Sargsyan <aram@isc.org>
Wed, 5 Mar 2025 12:18:11 +0000 (12:18 +0000)
When dns_remote_done() is true, calling dns_remote_curraddr() asserts.
Add a dns_remote_curraddr() check before calling dns_remote_curraddr().

lib/dns/zone.c

index 536c8f3752aec28c5237ec637b0b78e4632d732e..b1c0f5d8a0db9bf31361a605fc92263c43132d94 100644 (file)
@@ -18461,7 +18461,9 @@ get_request_transport_type(dns_zone_t *zone) {
                                         : DNS_TRANSPORT_UDP;
 
                /* Check if the peer is forced to always use TCP. */
-               if (transport_type != DNS_TRANSPORT_TCP) {
+               if (transport_type != DNS_TRANSPORT_TCP &&
+                   !dns_remote_done(&zone->primaries))
+               {
                        isc_result_t result;
                        isc_sockaddr_t primaryaddr;
                        isc_netaddr_t primaryip;