diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2023-03-18 18:23:14 -0400 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2023-03-18 18:23:14 -0400 |
| commit | 225e5ba571264eb9ceb1e7defa732d8ea28ab5cb (patch) | |
| tree | 0ad4ec7c9845447eff358f6a863b7c981e584a97 /src/cryptonote_core | |
| parent | 66f57299a220db539fdfb280c27483660664875d (diff) | |
| parent | 5900ed3706caa1beeef88738e7b62194280af5d9 (diff) | |
| download | monzero-core-225e5ba571264eb9ceb1e7defa732d8ea28ab5cb.tar.gz monzero-core-225e5ba571264eb9ceb1e7defa732d8ea28ab5cb.tar.xz monzero-core-225e5ba571264eb9ceb1e7defa732d8ea28ab5cb.zip | |
Merge pull request #8784
5900ed3 Add a size limit for tx_extra in tx pool (tevador)
Diffstat (limited to 'src/cryptonote_core')
| -rw-r--r-- | src/cryptonote_core/cryptonote_tx_utils.cpp | 2 | ||||
| -rw-r--r-- | src/cryptonote_core/tx_pool.cpp | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/cryptonote_core/cryptonote_tx_utils.cpp b/src/cryptonote_core/cryptonote_tx_utils.cpp index bf58a120d..5058b89a9 100644 --- a/src/cryptonote_core/cryptonote_tx_utils.cpp +++ b/src/cryptonote_core/cryptonote_tx_utils.cpp @@ -437,6 +437,8 @@ namespace cryptonote if (!sort_tx_extra(tx.extra, tx.extra)) return false; + CHECK_AND_ASSERT_MES(tx.extra.size() <= MAX_TX_EXTRA_SIZE, false, "TX extra size (" << tx.extra.size() << ") is greater than max allowed (" << MAX_TX_EXTRA_SIZE << ")"); + //check money if(summary_outs_money > summary_inputs_money ) { diff --git a/src/cryptonote_core/tx_pool.cpp b/src/cryptonote_core/tx_pool.cpp index 2a514ceae..359ded875 100644 --- a/src/cryptonote_core/tx_pool.cpp +++ b/src/cryptonote_core/tx_pool.cpp @@ -219,6 +219,15 @@ namespace cryptonote return false; } + size_t tx_extra_size = tx.extra.size(); + if (!kept_by_block && tx_extra_size > MAX_TX_EXTRA_SIZE) + { + LOG_PRINT_L1("transaction tx-extra is too big: " << tx_extra_size << " bytes, the limit is: " << MAX_TX_EXTRA_SIZE); + tvc.m_verifivation_failed = true; + tvc.m_tx_extra_too_big = true; + return false; + } + // if the transaction came from a block popped from the chain, // don't check if we have its key images as spent. // TODO: Investigate why not? |
