Merge topic 'findbase_dont_erase_outofbounds_entry' into release-4.0 f5837f0ac9 cmFindBase: Don't pass vector::erase an out of bounds iterator Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !10331
diff --git a/Source/cmFindBase.cxx b/Source/cmFindBase.cxx index 953c433..8733e3c 100644 --- a/Source/cmFindBase.cxx +++ b/Source/cmFindBase.cxx
@@ -356,14 +356,16 @@ { if (this->valid()) { long to_skip = this->count; - long index_to_remove = 0; + size_t index_to_remove = 0; for (auto const& path : entries) { if (path == this->value && --to_skip == 0) { break; } ++index_to_remove; } - entries.erase(entries.begin() + index_to_remove); + if (index_to_remove < entries.size() && to_skip == 0) { + entries.erase(entries.begin() + index_to_remove); + } } }