From 93f2e85aca51ad8bd24af92a46cb4cc78fff59a3 Mon Sep 17 00:00:00 2001 From: jah Date: Thu, 14 Jan 2010 01:30:48 +0000 Subject: [PATCH] Fixed a bug in get_dns_servers() where a sockaddr_storage was incorrectly converted to a printable string causing invalid dns server addresses to be returned. --- nmap_dns.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/nmap_dns.cc b/nmap_dns.cc index 304daecff..d82f28da6 100644 --- a/nmap_dns.cc +++ b/nmap_dns.cc @@ -1345,7 +1345,6 @@ void nmap_mass_rdns(Target **targets, int num_targets) { // Returns a list of known DNS servers std::list get_dns_servers() { init_servs(); - char addrStr[INET6_ADDRSTRLEN]; // If the user said --system-dns (!o.mass_dns), we should never return a list // of servers. @@ -1354,8 +1353,7 @@ std::list get_dns_servers() { std::list::iterator servI; std::list serverList; for(servI = servs.begin(); servI != servs.end(); servI++) { - inet_ntop((*servI)->addr.ss_family, (&(*servI)->addr),addrStr, sizeof(addrStr)); - serverList.push_back(addrStr); + serverList.push_back(inet_socktop((struct sockaddr_storage *) &(*servI)->addr)); } return serverList; }