From 9a050780dce1bf3cbe81bd18404df3e79c146583 Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Thu, 5 Nov 2009 01:57:49 +0000 Subject: [PATCH] 2750. [bug] dig: assertion failure could occur when a server didn't have an address. [RT #20579] --- CHANGES | 3 +++ bin/dig/dighost.c | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index ba301734ab..814b9f8cc1 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 7b81605304..0673b99676 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dighost.c,v 1.326 2009/09/15 23:48:09 tbox Exp $ */ +/* $Id: dighost.c,v 1.327 2009/11/05 01:57:49 each Exp $ */ /*! \file * \note @@ -2581,13 +2581,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;