From: Evan Hunt Date: Thu, 5 Nov 2009 01:57:29 +0000 (+0000) Subject: 2750. [bug] dig: assertion failure could occur when a server X-Git-Tag: v9.6.1-P2~2^2~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=76d66c8e527652bbacfdab441ecac6f931680fbf;p=thirdparty%2Fbind9.git 2750. [bug] dig: assertion failure could occur when a server didn't have an address. [RT #20579] --- diff --git a/CHANGES b/CHANGES index d65d47b179b..bb684a7ae83 100644 --- 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] diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index a9a587c709a..bb913ad4e1b 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -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;