aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2015-07-15 00:52:42 +0200
committerRiccardo Spagni <ric@spagni.net>2015-07-15 00:52:45 +0200
commit10e50a4da86a0d625496998090a5070c8373ce78 (patch)
tree11bcf8331fabd6df2200b407e1007d5a48128a37
parentMerge pull request #331 (diff)
parentFix loop bug when calling core::get_block_template, causing calling thread to... (diff)
downloadmonero-10e50a4da86a0d625496998090a5070c8373ce78.tar.xz
Merge pull request #333
5d304ca Fix loop bug when calling core::get_block_template, causing calling thread to lock up. (NoodleDoodleNoodleDoodleNoodleDoodleNoo)
-rw-r--r--src/cryptonote_core/tx_pool.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cryptonote_core/tx_pool.cpp b/src/cryptonote_core/tx_pool.cpp
index 6dea31c7c..f6dbf1414 100644
--- a/src/cryptonote_core/tx_pool.cpp
+++ b/src/cryptonote_core/tx_pool.cpp
@@ -503,7 +503,10 @@ namespace cryptonote
// Can not exceed maximum block size
if (max_total_size < total_size + tx_it->second.blob_size)
+ {
+ sorted_it++;
continue;
+ }
// If adding this tx will make the block size
// greater than CRYPTONOTE_GETBLOCKTEMPLATE_MAX
@@ -511,7 +514,10 @@ namespace cryptonote
// keep block sizes from becoming too unwieldly
// to propagate at 60s block times.
if ( (total_size + tx_it->second.blob_size) > CRYPTONOTE_GETBLOCKTEMPLATE_MAX_BLOCK_SIZE )
+ {
+ sorted_it++;
continue;
+ }
// If we've exceeded the penalty free size,
// stop including more tx
@@ -522,7 +528,10 @@ namespace cryptonote
// included into the blockchain or that are
// missing key images
if (!is_transaction_ready_to_go(tx_it->second) || have_key_images(k_images, tx_it->second.tx))
+ {
+ sorted_it++;
continue;
+ }
bl.tx_hashes.push_back(tx_it->first);
total_size += tx_it->second.blob_size;