From 3d36f2b00520911a5769df7b5353d7231972cf67 Mon Sep 17 00:00:00 2001 From: dmiller Date: Mon, 30 Jun 2025 23:33:31 +0000 Subject: [PATCH] Hedge against runaway recursion. See #3130 --- nmap_dns.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nmap_dns.cc b/nmap_dns.cc index 9528a4564..59778ded7 100644 --- a/nmap_dns.cc +++ b/nmap_dns.cc @@ -500,8 +500,6 @@ static void write_evt_handler(nsock_pool nsp, nsock_event evt, void *req_v) { info record; request *req = (request *) req_v; - req->curr_server->write_busy = 0; - if (nse_status(evt) == NSE_STATUS_SUCCESS) { req->curr_server->in_process.push_front(req); record.tpreq = req; @@ -516,6 +514,9 @@ static void write_evt_handler(nsock_pool nsp, nsock_event evt, void *req_v) { req->curr_server->to_process.push_front(req); } + // Avoid runaway recursion: when we call do_possible_writes above, + // make sure we still are "busy" + req->curr_server->write_busy = 0; } static DNS::RECORD_TYPE wire_type(DNS::RECORD_TYPE t) {