From 756d012567778062305e430361970fe8c45596eb Mon Sep 17 00:00:00 2001 From: dmiller Date: Wed, 10 Jun 2026 21:39:41 +0000 Subject: [PATCH] massdns: ensure servers are set in Init so that isMassDnsOK works --- libnetutil/massdns.cc | 4 +++- nmap_dns.cc | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libnetutil/massdns.cc b/libnetutil/massdns.cc index a1044d5c2..55b5f3309 100644 --- a/libnetutil/massdns.cc +++ b/libnetutil/massdns.cc @@ -504,7 +504,7 @@ DNS::Resolver::Resolver() bool DNS::Resolver::isMassDnsOK(const char **err) const { - if (impl->servs.size() == 0) { + if (impl->servs.empty()) { *err = "Unable to determine any DNS servers. "; return false; } @@ -519,6 +519,8 @@ bool DNS::Resolver::isSystemDnsOK(const char **err) const // Actual main loop void DNS::Resolver::Init(DNS::Request *requests, int num_requests) { + if (impl->servs.empty()) + setServers(NULL); impl->reset(); // Set up the request structure for (int i=0; i < num_requests; i++) diff --git a/nmap_dns.cc b/nmap_dns.cc index ba078f8a8..49457fed4 100644 --- a/nmap_dns.cc +++ b/nmap_dns.cc @@ -126,6 +126,7 @@ static DNS::Resolver *nmap_get_resolver() { void nmap_mass_dns(DNS::Request requests[], int num_requests) { DNS::Resolver *resolver = nmap_get_resolver(); bool use_systemdns = !o.mass_dns; + resolver->Init(requests, num_requests); if (o.mass_dns) { const char *errstr = NULL; @@ -140,7 +141,6 @@ void nmap_mass_dns(DNS::Request requests[], int num_requests) { } } - resolver->Init(requests, num_requests); DNS::Stats stat = resolver->getStats(); char spmobuf[1024]; Snprintf(spmobuf, sizeof(spmobuf), "%s DNS resolution of %d host%s.",