]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2750. [bug] dig: assertion failure could occur when a server
authorEvan Hunt <each@isc.org>
Thu, 5 Nov 2009 01:57:29 +0000 (01:57 +0000)
committerEvan Hunt <each@isc.org>
Thu, 5 Nov 2009 01:57:29 +0000 (01:57 +0000)
didn't have an address. [RT #20579]

CHANGES
bin/dig/dighost.c

diff --git a/CHANGES b/CHANGES
index d65d47b179ba495846f23546487878d694fd666e..bb684a7ae832ffb413aa546a9c6ed8fefeb4fea7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2750.  [bug]           dig: assertion failure could occur when a server
+                       didn't have an address. [RT #20579]
+
 2749.  [bug]           ixfr-from-differences generated a non-minimal ixfr
                        for NSEC3 signed zones. [RT #20452]
 
index a9a587c709a76493ec43bc4c0803d5f78b961839..bb913ad4e1bcf7f4220721a4401a2cb222da773c 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: dighost.c,v 1.311.70.9 2009/06/24 03:40:42 marka Exp $ */
+/* $Id: dighost.c,v 1.311.70.10 2009/11/05 01:57:29 each Exp $ */
 
 /*! \file
  *  \note
@@ -2398,13 +2398,15 @@ connect_timeout(isc_task_t *task, isc_event_t *event) {
                cq = query->lookup->current_query;
                if (!l->tcp_mode)
                        send_udp(ISC_LIST_NEXT(cq, link));
-               else {
+               else if (query->sock != NULL) {
                        isc_socket_cancel(query->sock, NULL,
                                          ISC_SOCKCANCEL_ALL);
                        isc_socket_detach(&query->sock);
                        sockcount--;
                        debug("sockcount=%d", sockcount);
                        send_tcp_connect(ISC_LIST_NEXT(cq, link));
+               } else {
+                       send_tcp_connect(ISC_LIST_NEXT(cq, link));
                }
                UNLOCK_LOOKUP;
                return;