]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
[master] nsupdate: send tkey queries to the right server
authorEvan Hunt <each@isc.org>
Thu, 20 Apr 2017 16:28:37 +0000 (09:28 -0700)
committerEvan Hunt <each@isc.org>
Thu, 20 Apr 2017 16:28:37 +0000 (09:28 -0700)
4588. [bug] nsupdate could send queries for TKEY to the wrong
server when using GSSAPI. Thanks to Tomas Hozza.
[RT #39893]

CHANGES
bin/nsupdate/nsupdate.c

diff --git a/CHANGES b/CHANGES
index 3608b29ccf917a1f3dd1bd65b6d062831b287a84..d1ff44783375cd83d94b1c3d667598c214fe3acd 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+4588.  [bug]           nsupdate could send queries for TKEY to the wrong
+                       server when using GSSAPI. Thanks to Tomas Hozza.
+                       [RT #39893]
+
 4587.  [bug]           named-checkzone failed to handle occulted data below
                        DNAMEs correctly. [RT #44877]
 
index 9572fd8b08e68d91672b639e1863b34795cf4459..8fc5b20b6e1ba4fe7d3b3a8b943232c5bcc856b8 100644 (file)
@@ -2799,10 +2799,8 @@ start_gssrequest(dns_name_t *master) {
                if (kserver == NULL)
                        fatal("out of memory");
        }
-       if (servers == NULL)
-               get_addresses(namestr, dnsport, kserver, 1);
-       else
-               memmove(kserver, &servers[ns_inuse], sizeof(isc_sockaddr_t));
+
+       memmove(kserver, &master_servers[master_inuse], sizeof(isc_sockaddr_t));
 
        dns_fixedname_init(&fname);
        servname = dns_fixedname_name(&fname);
@@ -2947,11 +2945,11 @@ recvgss(isc_task_t *task, isc_event_t *event) {
        }
 
        if (eresult != ISC_R_SUCCESS) {
-               next_server("recvgss", addr, eresult);
+               next_master("recvgss", addr, eresult);
                ddebug("Destroying request [%p]", request);
                dns_request_destroy(&request);
                dns_message_renderreset(tsigquery);
-               sendrequest(&servers[ns_inuse], tsigquery, &request);
+               sendrequest(&master_servers[master_inuse], tsigquery, &request);
                isc_mem_put(gmctx, reqinfo, sizeof(nsu_gssinfo_t));
                isc_event_free(&event);
                return;