From a744a969da88153cf6d6fda1d06842ccb43e4d05 Mon Sep 17 00:00:00 2001 From: dmiller Date: Thu, 22 Apr 2021 23:22:46 +0000 Subject: [PATCH] Fix -sU modifying payloads when retrieving them. Closes #2269. Fixes #2268 --- CHANGELOG | 3 +++ payload.cc | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 0f70ca8b4..792917d52 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,8 @@ #Nmap Changelog ($Id$); -*-text-*- +o [GH#2269] Fix an issue with -sU where payloads were modified when retrieving + them, causing later payloads to not be sent. [Mariusz Ziulek] + o [GH#2257] Fix an issue in addrset matching that was causing all targets to be excluded if the --excludefile listed a CIDR range that contains an earlier, smaller CIDR range. [Daniel Miller] diff --git a/payload.cc b/payload.cc index c7bfe8fb6..d45af7940 100644 --- a/payload.cc +++ b/payload.cc @@ -315,7 +315,6 @@ int init_payloads(void) { const char *udp_port2payload(u16 dport, size_t *length, u8 tryno) { static const char *payload_null = ""; std::map >::iterator portPayloadIterator; - std::vector portPayloadVector; std::vector::iterator portPayloadVectorIterator; proto_dport key(IPPROTO_UDP, dport); int portPayloadVectorSize; @@ -323,7 +322,7 @@ const char *udp_port2payload(u16 dport, size_t *length, u8 tryno) { portPayloadIterator = portPayloads.find(key); if (portPayloadIterator != portPayloads.end()) { - portPayloadVector = portPayloads.find(key)->second; + std::vector& portPayloadVector = portPayloads.find(key)->second; portPayloadVectorSize = portPayloadVector.size(); tryno %= portPayloadVectorSize;