From f5837f0ac9527042c008884ac16eafec8a6a56c2 Mon Sep 17 00:00:00 2001 From: Robert Maynard Date: Tue, 11 Feb 2025 14:51:57 -0500 Subject: cmFindBase: Don't pass vector::erase an out of bounds iterator Fixes: #26606 --- Source/cmFindBase.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 @@ struct entry_to_remove { 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); + } } } -- cgit v0.12