aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVasil Dimov <vd@FreeBSD.org>2022-01-19 14:03:37 +0100
committerJon Atack <jon@atack.com>2022-01-25 20:43:28 +0100
commite9f3aa5f6a7b39e8d5f2069617e5e382798d8d60 (patch)
treedab6f60d74047fd32d90bbe0fc4c0f9f81d1d920 /src
parent8ef457cb83fac796f8b6a56977b1016193fc1185 (diff)
downloadbitcoin-e9f3aa5f6a7b39e8d5f2069617e5e382798d8d60.tar.xz
Require CBlockIndex::RaiseValidity() to hold cs_main
Diffstat (limited to 'src')
-rw-r--r--src/chain.h3
-rw-r--r--src/test/fuzz/chain.cpp2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/chain.h b/src/chain.h
index 2eb780d499..c2a9cba1e6 100644
--- a/src/chain.h
+++ b/src/chain.h
@@ -328,8 +328,9 @@ public:
//! Raise the validity level of this block index entry.
//! Returns true if the validity was changed.
- bool RaiseValidity(enum BlockStatus nUpTo)
+ bool RaiseValidity(enum BlockStatus nUpTo) EXCLUSIVE_LOCKS_REQUIRED(::cs_main)
{
+ AssertLockHeld(::cs_main);
assert(!(nUpTo & ~BLOCK_VALID_MASK)); // Only validity flags allowed.
if (nStatus & BLOCK_FAILED_MASK) return false;
diff --git a/src/test/fuzz/chain.cpp b/src/test/fuzz/chain.cpp
index 4f97e1ebb1..8c0ed32d51 100644
--- a/src/test/fuzz/chain.cpp
+++ b/src/test/fuzz/chain.cpp
@@ -58,7 +58,7 @@ FUZZ_TARGET(chain)
if (block_status & ~BLOCK_VALID_MASK) {
continue;
}
- (void)disk_block_index->RaiseValidity(block_status);
+ WITH_LOCK(::cs_main, (void)disk_block_index->RaiseValidity(block_status));
}
CBlockIndex block_index{block_header};