2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-09-01 14:35:29 +00:00

[trac847] Don't increment invalid iterator

The problem was, it was increased after invalidating once before
checking the condition again. It is probably harmless, but according to
the letter not legal.
This commit is contained in:
Michal 'vorner' Vaner
2011-04-25 20:35:34 +02:00
parent e5cae84640
commit 0194e3a376

View File

@@ -1,4 +1,3 @@
// Copyright (C) 2011 Internet Systems Consortium, Inc. ("ISC")
//
// Permission to use, copy, modify, and/or distribute this software for any
@@ -74,13 +73,13 @@ ResponseScrubber::scrubSection(Message& message,
// Start looking at the remaining entries in the section.
removed = false;
for (; (i != message.endSection(section)) && (!removed); ++i) {
for (; i != message.endSection(section); ++i) {
// Loop through the list of names given and see if any are in the
// given relationship with the QNAME of this RRset
bool nomatch = true;
for (vector<const Name*>::const_iterator n = names.begin();
((n != names.end()) && nomatch); ++n) {
((n != names.end())); ++n) {
NameComparisonResult result = (*i)->getName().compare(**n);
NameComparisonResult::NameRelation relationship =
result.getRelation();
@@ -90,6 +89,7 @@ ResponseScrubber::scrubSection(Message& message,
// RRset in the specified relationship, so a match has
// been found
nomatch = false;
break;
}
}
@@ -98,6 +98,7 @@ ResponseScrubber::scrubSection(Message& message,
message.removeRRset(section, i);
++count; // One more RRset removed
removed = true; // Something was removed
break; // It invalidated the iterators, start again
} else {
// There was a match so this is one more entry we can skip next