Fix bugs found through fuzzing
This commit is contained in:
@@ -653,7 +653,14 @@ struct __attribute__((__visibility__("hidden"))) VersionedMap::Impl {
|
||||
rangeVersion = latestVersion;
|
||||
if (inserted) {
|
||||
val = {nullptr, -1}; // Sentinel for "no point mutation here"
|
||||
pointVersion = -1; // Sentinel for "no point mutation here"
|
||||
Finger copy;
|
||||
finger.copyTo(copy);
|
||||
move<std::memory_order_relaxed>(copy, latestVersion, true);
|
||||
if (copy.searchPathSize() == 0) {
|
||||
pointVersion = -1; // Sentinel for "no mutation ending here"
|
||||
} else {
|
||||
pointVersion = mm.base[copy.backNode()].entry->rangeVersion;
|
||||
}
|
||||
} else {
|
||||
auto *entry = mm.base[finger.backNode()].entry;
|
||||
val = {entry->getVal(), entry->valLen};
|
||||
|
Reference in New Issue
Block a user