Skip to content

Commit

Permalink
Ensure resolveall only affects hostname-derived NetBlocks
Browse files Browse the repository at this point in the history
  • Loading branch information
bonsaiviking committed Aug 7, 2017
1 parent 995988e commit 6c62fb6
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions TargetGroup.cc
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,9 @@ extern NmapOps o;
class NetBlock {
public:
virtual ~NetBlock() {}
NetBlock() : resolveall(false) {
current_addr = resolvedaddrs.begin();
}
std::string hostname;
std::list<struct sockaddr_storage> resolvedaddrs;
std::list<struct sockaddr_storage> unscanned_addrs;
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit 6c62fb6

Please sign in to comment.