From: Aram Sargsyan Date: Tue, 1 Jul 2025 10:49:39 +0000 (+0000) Subject: Fix a possible hang in dig if a send is interrupted/canceled X-Git-Tag: v9.21.11~53^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d1a8fe7555e0facc4e86409b4adb0b663809ae5;p=thirdparty%2Fbind9.git Fix a possible hang in dig if a send is interrupted/canceled When send_done() is called with a ISC_R_CANCELED status (e.g. because of a signal from ctrl+c), dig can fail to shutdown because check_if_done() is not called in the branch. Add a check_if_done() call. --- diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index c2e9b548861..2c4335c5123 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -2697,6 +2697,7 @@ send_done(isc_nmhandle_t *handle, isc_result_t eresult, void *arg) { } query_detach(&query); lookup_detach(&l); + check_if_done(); return; } else if (eresult != ISC_R_SUCCESS) { debug("send failed: %s", isc_result_totext(eresult));