From be3032e2f3da5c6386334fe9ccf7256ee0d80771 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Fri, 14 Jun 2024 23:25:43 -0700 Subject: [PATCH] Fix a use of an invalid iterator --- VersionedMap.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/VersionedMap.cpp b/VersionedMap.cpp index 8303749..19c8707 100644 --- a/VersionedMap.cpp +++ b/VersionedMap.cpp @@ -955,7 +955,10 @@ struct __attribute__((__visibility__("hidden"))) VersionedMap::Impl { if (engulfLeft && engulfRight) { insert({next->getKey(), next->keyLen}, {}, /*endRange*/ true, copy); if (found) { - remove(iter); + move(copy, latestVersion); + // Point to the same entry as iter pointed to, but it's not + // invalidated + remove(copy); } } else if (engulfLeft) { assert(found);