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);
+      }
     }
   }