From cdc6ac4126b31426261605a757c52ea2dbfb2a81 Mon Sep 17 00:00:00 2001 From: Mark Friedenbach Date: Sat, 4 Nov 2023 12:32:17 -0700 Subject: [PATCH] snapshots: don't core dump when running -checkblockindex after `loadtxoutset` --- src/validation.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/validation.cpp b/src/validation.cpp index 8d7e3661254..aa603a851d8 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -4859,7 +4859,9 @@ void ChainstateManager::CheckBlockIndex() // For testing, allow transaction counts to be completely unset. || (pindex->nChainTx == 0 && pindex->nTx == 0) // For testing, allow this nChainTx to be unset if previous is also unset. - || (pindex->nChainTx == 0 && prev_chain_tx == 0 && pindex->pprev)); + || (pindex->nChainTx == 0 && prev_chain_tx == 0 && pindex->pprev) + // Transaction counts prior to snapshot are unknown. + || pindex->IsAssumedValid()); if (pindexFirstAssumeValid == nullptr && pindex->nStatus & BLOCK_ASSUMED_VALID) pindexFirstAssumeValid = pindex; if (pindexFirstInvalid == nullptr && pindex->nStatus & BLOCK_FAILED_VALID) pindexFirstInvalid = pindex;