diff options
author | Martin Zumsande <mzumsande@gmail.com> | 2022-01-20 22:21:56 +0100 |
---|---|---|
committer | Martin Zumsande <mzumsande@gmail.com> | 2022-01-31 21:20:41 +0100 |
commit | 0243907faee0aa6af09974131d9a46a7f9c3ef38 (patch) | |
tree | 4f8e99e6628dbaf5bdb5b0187b2bbb8ba190f0e2 /src/index | |
parent | 8f137e69caeb2a2ffe1aa930bd6fbc49cee4087c (diff) |
index: Don't commit without valid m_best_block_index
Also report an error when coinstatsindex init fails.
Diffstat (limited to 'src/index')
-rw-r--r-- | src/index/base.cpp | 5 | ||||
-rw-r--r-- | src/index/coinstatsindex.cpp | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/index/base.cpp b/src/index/base.cpp index 2e3d500cd1..8fe30f8960 100644 --- a/src/index/base.cpp +++ b/src/index/base.cpp @@ -211,6 +211,11 @@ bool BaseIndex::Commit() bool BaseIndex::CommitInternal(CDBBatch& batch) { LOCK(cs_main); + // Don't commit anything if we haven't indexed any block yet + // (this could happen if init is interrupted). + if (m_best_block_index == nullptr) { + return false; + } GetDB().WriteBestBlock(batch, m_chainstate->m_chain.GetLocator(m_best_block_index)); return true; } diff --git a/src/index/coinstatsindex.cpp b/src/index/coinstatsindex.cpp index ef247dc119..7d4860b20b 100644 --- a/src/index/coinstatsindex.cpp +++ b/src/index/coinstatsindex.cpp @@ -360,9 +360,9 @@ bool CoinStatsIndex::Init() if (pindex) { DBVal entry; if (!LookUpOne(*m_db, pindex, entry)) { - return false; + return error("%s: Cannot read current %s state; index may be corrupted", + __func__, GetName()); } - m_transaction_output_count = entry.transaction_output_count; m_bogo_size = entry.bogo_size; m_total_amount = entry.total_amount; |