Merge pull request #6472

2efbd5f cryptonote: fix reuse of non default tx data when relaying (moneromooo-monero)
This commit is contained in:
luigi1111 2020-05-06 00:25:18 -05:00
commit 483e5cab5c
No known key found for this signature in database
GPG key ID: F4ACA0183641E010
2 changed files with 3 additions and 1 deletions

View file

@ -160,6 +160,8 @@ namespace cryptonote
if (tx.version >= 2 && !is_coinbase(tx)) if (tx.version >= 2 && !is_coinbase(tx))
{ {
rct::rctSig &rv = tx.rct_signatures; rct::rctSig &rv = tx.rct_signatures;
if (rv.type == rct::RCTTypeNull)
return true;
if (rv.outPk.size() != tx.vout.size()) if (rv.outPk.size() != tx.vout.size())
{ {
LOG_PRINT_L1("Failed to parse transaction from blob, bad outPk size in tx " << get_transaction_hash(tx)); LOG_PRINT_L1("Failed to parse transaction from blob, bad outPk size in tx " << get_transaction_hash(tx));

View file

@ -1309,9 +1309,9 @@ namespace cryptonote
std::vector<crypto::hash> tx_hashes{}; std::vector<crypto::hash> tx_hashes{};
tx_hashes.resize(tx_blobs.size()); tx_hashes.resize(tx_blobs.size());
cryptonote::transaction tx{};
for (std::size_t i = 0; i < tx_blobs.size(); ++i) for (std::size_t i = 0; i < tx_blobs.size(); ++i)
{ {
cryptonote::transaction tx{};
if (!parse_and_validate_tx_from_blob(tx_blobs[i], tx, tx_hashes[i])) if (!parse_and_validate_tx_from_blob(tx_blobs[i], tx, tx_hashes[i]))
{ {
LOG_ERROR("Failed to parse relayed transaction"); LOG_ERROR("Failed to parse relayed transaction");