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:
@@ -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
|
||||
|
Reference in New Issue
Block a user