diff --git a/CHANGELOG b/CHANGELOG index 48c856791..946476dec 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,11 @@ #Nmap Changelog ($Id$); -*-text-*- +o Increased effectiveness of service scan soft matches. Previously, all probes + which matched the port being scanned would be sent regardless of whether the + service was soft matched; softmatch lines only restricted non-port-matching + probes from being sent. Now, a soft match will cause ALL non-service-matching + probes to be skipped, even if the port number matches. [Daniel Miller] + o [GH#1112] Resolved crash opportunities caused by unexpected libpcap version string format. [Gisle Vanem, nnposter] diff --git a/service_scan.cc b/service_scan.cc index 4bdc11901..7c7359395 100644 --- a/service_scan.cc +++ b/service_scan.cc @@ -1846,7 +1846,8 @@ bool dropdown = false; while (current_probe != AP->probes.end()) { // For the first run, we only do probes that match this port number if ((proto == (*current_probe)->getProbeProtocol()) && - (*current_probe)->portIsProbable(tunnel, portno)) { + (*current_probe)->portIsProbable(tunnel, portno) && + (!softMatchFound || (*current_probe)->serviceIsPossible(probe_matched))) { // This appears to be a valid probe. Let's do it! return *current_probe; }