aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2017-09-21 12:07:22 +0200
committerRiccardo Spagni <ric@spagni.net>2017-09-21 12:07:22 +0200
commit8cc9b0e739b1554a810560681a910e43cb4a3620 (patch)
tree491e06f99d837874bb1eb1d059a30d29f24a71df
parentMerge pull request #2477 (diff)
parentblockchain: fix crash checking pre-validated txids (diff)
downloadmonero-8cc9b0e739b1554a810560681a910e43cb4a3620.tar.xz
Merge pull request #2492
e457aa51 blockchain: fix crash checking pre-validated txids (moneromooo-monero)
Diffstat (limited to '')
-rw-r--r--src/cryptonote_core/blockchain.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp
index 619dbdc07..274c8cd07 100644
--- a/src/cryptonote_core/blockchain.cpp
+++ b/src/cryptonote_core/blockchain.cpp
@@ -3276,7 +3276,7 @@ leave:
// XXX old code adds miner tx here
- int tx_index = 0;
+ size_t tx_index = 0;
// Iterate over the block's transaction hashes, grabbing each
// from the tx_pool and validating them. Each is then added
// to txs. Keys spent in each are added to <keys> by the double spend check.
@@ -3358,7 +3358,7 @@ leave:
{
// ND: if fast_check is enabled for blocks, there is no need to check
// the transaction inputs, but do some sanity checks anyway.
- if (memcmp(&m_blocks_txs_check[tx_index++], &tx_id, sizeof(tx_id)) != 0)
+ if (tx_index >= m_blocks_txs_check.size() || memcmp(&m_blocks_txs_check[tx_index++], &tx_id, sizeof(tx_id)) != 0)
{
MERROR_VER("Block with id: " << id << " has at least one transaction (id: " << tx_id << ") with wrong inputs.");
//TODO: why is this done? make sure that keeping invalid blocks makes sense.