From 0fb4fc1897c4098df08b10e180db843be172d42d Mon Sep 17 00:00:00 2001 From: Aram Sargsyan Date: Sun, 13 Mar 2022 13:47:16 +0000 Subject: [PATCH] Fix dig error when trying the next server after a TCP connection failure When encountering a TCP connection error while trying to initiate a connection to a server, dig erroneously cancels the lookup even when there are other server(s) to try, which results in an assertion failure. Cancel the lookup only when there are no more queries left in the lookup's queries list (i.e. `next` is NULL). --- bin/dig/dighost.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index 88d355f100..fa813901c7 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -3293,8 +3293,10 @@ tcp_connected(isc_nmhandle_t *handle, isc_result_t eresult, void *arg) { next = NULL; } - cancel_lookup(l); query_detach(&query); + if (next == NULL) { + cancel_lookup(l); + } lookup_detach(&l); if (next != NULL) {