Skip to content

Commit 8ef457c

Browse files
vasildjonatack
authored andcommitted
Require CBlockIndex::IsAssumedValid() to hold cs_main
1 parent 5723934 commit 8ef457c

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/chain.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,11 @@ class CBlockIndex
320320

321321
//! @returns true if the block is assumed-valid; this means it is queued to be
322322
//! validated by a background chainstate.
323-
bool IsAssumedValid() const { return nStatus & BLOCK_ASSUMED_VALID; }
323+
bool IsAssumedValid() const EXCLUSIVE_LOCKS_REQUIRED(::cs_main)
324+
{
325+
AssertLockHeld(::cs_main);
326+
return nStatus & BLOCK_ASSUMED_VALID;
327+
}
324328

325329
//! Raise the validity level of this block index entry.
326330
//! Returns true if the validity was changed.

src/test/validation_chainstatemanager_tests.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager_activate_snapshot, TestChain100Setup)
235235
*chainman.SnapshotBlockhash());
236236

237237
// Ensure that the genesis block was not marked assumed-valid.
238-
BOOST_CHECK(!chainman.ActiveChain().Genesis()->IsAssumedValid());
238+
BOOST_CHECK(WITH_LOCK(::cs_main, return !chainman.ActiveChain().Genesis()->IsAssumedValid()));
239239

240240
const AssumeutxoData& au_data = *ExpectedAssumeutxo(snapshot_height, ::Params());
241241
const CBlockIndex* tip = chainman.ActiveTip();
@@ -356,6 +356,7 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager_loadblockindex, TestChain100Setup)
356356

357357
// Mark some region of the chain assumed-valid.
358358
for (int i = 0; i <= cs1.m_chain.Height(); ++i) {
359+
LOCK(::cs_main);
359360
auto index = cs1.m_chain[i];
360361

361362
if (i < last_assumed_valid_idx && i >= assumed_valid_start_idx) {

0 commit comments

Comments
 (0)