From 6c62fb6a74e900900a2053f120ebfd9370205de9 Mon Sep 17 00:00:00 2001 From: dmiller Date: Mon, 7 Aug 2017 19:46:27 +0000 Subject: [PATCH] Ensure resolveall only affects hostname-derived NetBlocks --- TargetGroup.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/TargetGroup.cc b/TargetGroup.cc index 872e8c2f6..b371ba48a 100644 --- a/TargetGroup.cc +++ b/TargetGroup.cc @@ -160,6 +160,9 @@ extern NmapOps o; class NetBlock { public: virtual ~NetBlock() {} + NetBlock() : resolveall(false) { + current_addr = resolvedaddrs.begin(); + } std::string hostname; std::list resolvedaddrs; std::list unscanned_addrs; @@ -473,7 +476,7 @@ bool NetBlockIPv4Ranges::next(struct sockaddr_storage *ss, size_t *sslen) { break; } if (i >= 4) { - if (this->resolveall && current_addr != this->resolvedaddrs.end() && ++current_addr != this->resolvedaddrs.end()) { + if (this->resolveall && !this->resolvedaddrs.empty() && current_addr != this->resolvedaddrs.end() && ++current_addr != this->resolvedaddrs.end()) { this->set_addr((struct sockaddr_in *) &*current_addr); } else { @@ -634,7 +637,7 @@ bool NetBlockIPv6Netmask::next(struct sockaddr_storage *ss, size_t *sslen) { struct sockaddr_in6 *sin6; if (this->exhausted){ - if (this->resolveall && current_addr != this->resolvedaddrs.end() && ++current_addr != this->resolvedaddrs.end()) { + if (this->resolveall && !this->resolvedaddrs.empty() && current_addr != this->resolvedaddrs.end() && ++current_addr != this->resolvedaddrs.end()) { this->set_addr((struct sockaddr_in6 *) &*current_addr); } else {