aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2018-09-04 13:25:44 -0500
committerluigi1111 <luigi1111w@gmail.com>2018-09-04 13:25:44 -0500
commit03738fdde1eeafbab9c74d8c446ccd76a4e847d2 (patch)
tree6701898097f041f94358d62010d05f2bcef3a405
parentMerge pull request #4275 (diff)
parenttx_pool: fix infinite loop when failing to find a meta record (diff)
downloadmonero-03738fdde1eeafbab9c74d8c446ccd76a4e847d2.tar.xz
Merge pull request #4276
48a7bc4 tx_pool: fix infinite loop when failing to find a meta record (moneromooo-monero)
-rw-r--r--src/cryptonote_core/tx_pool.cpp8
1 files changed, 1 insertions, 7 deletions
diff --git a/src/cryptonote_core/tx_pool.cpp b/src/cryptonote_core/tx_pool.cpp
index 5807867d9..41c58fcb6 100644
--- a/src/cryptonote_core/tx_pool.cpp
+++ b/src/cryptonote_core/tx_pool.cpp
@@ -1154,7 +1154,7 @@ namespace cryptonote
LockedTXN lock(m_blockchain);
auto sorted_it = m_txs_by_fee_and_receive_time.begin();
- while (sorted_it != m_txs_by_fee_and_receive_time.end())
+ for (; sorted_it != m_txs_by_fee_and_receive_time.end(); ++sorted_it)
{
txpool_tx_meta_t meta;
if (!m_blockchain.get_txpool_tx_meta(sorted_it->second, meta))
@@ -1168,7 +1168,6 @@ namespace cryptonote
if (max_total_size < total_size + meta.blob_size)
{
LOG_PRINT_L2(" would exceed maximum block size");
- sorted_it++;
continue;
}
@@ -1181,14 +1180,12 @@ namespace cryptonote
if(!get_block_reward(median_size, total_size + meta.blob_size, already_generated_coins, block_reward, version))
{
LOG_PRINT_L2(" would exceed maximum block size");
- sorted_it++;
continue;
}
coinbase = block_reward + fee + meta.fee;
if (coinbase < template_accept_threshold(best_coinbase))
{
LOG_PRINT_L2(" would decrease coinbase to " << print_money(coinbase));
- sorted_it++;
continue;
}
}
@@ -1235,13 +1232,11 @@ namespace cryptonote
if (!ready)
{
LOG_PRINT_L2(" not ready to go");
- sorted_it++;
continue;
}
if (have_key_images(k_images, tx))
{
LOG_PRINT_L2(" key images already seen");
- sorted_it++;
continue;
}
@@ -1250,7 +1245,6 @@ namespace cryptonote
fee += meta.fee;
best_coinbase = coinbase;
append_key_images(k_images, tx);
- sorted_it++;
LOG_PRINT_L2(" added, new block size " << total_size << "/" << max_total_size << ", coinbase " << print_money(best_coinbase));
}