From 6ffce766da4e41223fde85f0ec529079f27732f8 Mon Sep 17 00:00:00 2001 From: dmiller Date: Thu, 1 Sep 2016 03:34:22 +0000 Subject: [PATCH] Avoid comparing with invalidated iterator to end if elements are deleted. --- scan_engine_connect.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scan_engine_connect.cc b/scan_engine_connect.cc index 980ff78ee..6ec0c834b 100644 --- a/scan_engine_connect.cc +++ b/scan_engine_connect.cc @@ -536,8 +536,8 @@ bool do_one_select_round(UltraScanInfo *USI, struct timeval *stime) { continue; std::list::iterator nextProbeI; - for (std::list::iterator probeI = host->probes_outstanding.begin(), end = host->probes_outstanding.end(); - probeI != end && numGoodSD < selectres && host->num_probes_outstanding() > 0; probeI = nextProbeI) { + for (std::list::iterator probeI = host->probes_outstanding.begin(); + probeI != host->probes_outstanding.end() && numGoodSD < selectres && host->num_probes_outstanding() > 0; probeI = nextProbeI) { /* handleConnectResult may remove the probe at probeI, which invalidates * the iterator. We copy and increment it here instead of in the for-loop * statement to avoid incrementing an invalid iterator */