From d6a0ae96c6a4fad9f71b38dc6cef134c4234d99c Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sat, 10 Feb 2018 11:25:00 +0000 Subject: [PATCH] blockchain: don't try to use hash check array after it's freed It's freed when we've synced past its end, but we might still find an old chain somewhere --- src/cryptonote_core/blockchain.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp index 178479f3c..378e4684f 100644 --- a/src/cryptonote_core/blockchain.cpp +++ b/src/cryptonote_core/blockchain.cpp @@ -3753,6 +3753,10 @@ uint64_t Blockchain::prevalidate_block_hashes(uint64_t height, const std::list= m_blocks_hash_of_hashes.size() * HASH_OF_HASHES_STEP) return hashes.size(); + // if we're getting old blocks, we might have jettisoned the hashes already + if (m_blocks_hash_check.empty()) + return hashes.size(); + // find hashes encompassing those block size_t first_index = height / HASH_OF_HASHES_STEP; size_t last_index = (height + hashes.size() - 1) / HASH_OF_HASHES_STEP;