Merge pull request #3248

d6a0ae96 blockchain: don't try to use hash check array after it's freed (moneromooo-monero)
This commit is contained in:
Riccardo Spagni 2018-02-16 14:24:22 +01:00
commit 24d8f9237f
No known key found for this signature in database
GPG Key ID: 55432DF31CCD4FCD

View File

@ -3754,6 +3754,10 @@ uint64_t Blockchain::prevalidate_block_hashes(uint64_t height, const std::list<c
if (height >= m_blocks_hash_of_hashes.size() * HASH_OF_HASHES_STEP) if (height >= m_blocks_hash_of_hashes.size() * HASH_OF_HASHES_STEP)
return hashes.size(); 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 // find hashes encompassing those block
size_t first_index = height / HASH_OF_HASHES_STEP; size_t first_index = height / HASH_OF_HASHES_STEP;
size_t last_index = (height + hashes.size() - 1) / HASH_OF_HASHES_STEP; size_t last_index = (height + hashes.size() - 1) / HASH_OF_HASHES_STEP;