Fix loop bug when calling core::get_block_template, causing calling thread to lock up.

This commit is contained in:
NoodleDoodleNoodleDoodleNoodleDoodleNoo 2015-07-10 22:09:21 -07:00
parent 9dc25497a2
commit 5d304cabfd
1 changed files with 9 additions and 0 deletions

View File

@ -503,7 +503,10 @@ namespace cryptonote
// Can not exceed maximum block size // Can not exceed maximum block size
if (max_total_size < total_size + tx_it->second.blob_size) if (max_total_size < total_size + tx_it->second.blob_size)
{
sorted_it++;
continue; continue;
}
// If adding this tx will make the block size // If adding this tx will make the block size
// greater than CRYPTONOTE_GETBLOCKTEMPLATE_MAX // greater than CRYPTONOTE_GETBLOCKTEMPLATE_MAX
@ -511,7 +514,10 @@ namespace cryptonote
// keep block sizes from becoming too unwieldly // keep block sizes from becoming too unwieldly
// to propagate at 60s block times. // to propagate at 60s block times.
if ( (total_size + tx_it->second.blob_size) > CRYPTONOTE_GETBLOCKTEMPLATE_MAX_BLOCK_SIZE ) if ( (total_size + tx_it->second.blob_size) > CRYPTONOTE_GETBLOCKTEMPLATE_MAX_BLOCK_SIZE )
{
sorted_it++;
continue; continue;
}
// If we've exceeded the penalty free size, // If we've exceeded the penalty free size,
// stop including more tx // stop including more tx
@ -522,7 +528,10 @@ namespace cryptonote
// included into the blockchain or that are // included into the blockchain or that are
// missing key images // missing key images
if (!is_transaction_ready_to_go(tx_it->second) || have_key_images(k_images, tx_it->second.tx)) if (!is_transaction_ready_to_go(tx_it->second) || have_key_images(k_images, tx_it->second.tx))
{
sorted_it++;
continue; continue;
}
bl.tx_hashes.push_back(tx_it->first); bl.tx_hashes.push_back(tx_it->first);
total_size += tx_it->second.blob_size; total_size += tx_it->second.blob_size;