From 4477f718688b47cf46898c07fc56bcfdd254e074 Mon Sep 17 00:00:00 2001 From: Aram Sargsyan Date: Tue, 29 Mar 2022 20:58:15 +0000 Subject: [PATCH] Synchronze udp_ready() and tcp_connected() functions entry behavior The `udp_ready()` and `tcp_connected()` functions in dighost.c are used for similar purposes for UDP and TCP respectively. Synchronize the `udp_ready()` function entry code to behave like `tcp_connected()` by adding input validation, debug messages and early exit code when `cancel_now` is `true`. --- bin/dig/dighost.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index 6d710adb49..6f99f54064 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -3097,8 +3097,22 @@ udp_ready(isc_nmhandle_t *handle, isc_result_t eresult, void *arg) { dig_query_t *readquery = NULL; int local_timeout = timeout * 1000; + REQUIRE(DIG_VALID_QUERY(query)); + REQUIRE(query->handle == NULL); + + debug("udp_ready()"); + query->started = true; + if (atomic_load(&cancel_now)) { + return; + } + + INSIST(!free_now); + + debug("udp_ready(%p, %s, %p)", handle, isc_result_totext(eresult), + query); + if (eresult == ISC_R_CANCELED || query->canceled) { dig_lookup_t *l = query->lookup;