Merge pull request #2913

b927f0b1 cryptonote_protocol: fix corner case looping asking for same block hashes (moneromooo-monero)
This commit is contained in:
Riccardo Spagni 2017-12-12 17:48:29 +02:00
commit 319163d276
No known key found for this signature in database
GPG Key ID: 55432DF31CCD4FCD
1 changed files with 4 additions and 0 deletions

View File

@ -1414,6 +1414,10 @@ skip:
// take out blocks we already have
while (!context.m_needed_objects.empty() && m_core.have_block(context.m_needed_objects.front()))
{
// if we're popping the last hash, record it so we can ask again from that hash,
// this prevents never being able to progress on peers we get old hash lists from
if (context.m_needed_objects.size() == 1)
context.m_last_known_hash = context.m_needed_objects.front();
context.m_needed_objects.pop_front();
}
const uint64_t first_block_height = context.m_last_response_height - context.m_needed_objects.size() + 1;