aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortobtoht <tob@featherwallet.org>2026-06-21 11:39:21 +0000
committertobtoht <tob@featherwallet.org>2026-06-21 11:39:21 +0000
commite8e4d4e63f21fb438cfb3c35713dbd2d9b88b071 (patch)
treec2b7927ae82b0c350773d8601b859570920a8647 /src
parentbb858a6aff0410b6ef102010e3ea42ad6db11d70 (diff)
parentef7a86c99f7c58c361c3c0ddf5687a165c22ce7a (diff)
downloadmonzero-core-e8e4d4e63f21fb438cfb3c35713dbd2d9b88b071.tar.gz
monzero-core-e8e4d4e63f21fb438cfb3c35713dbd2d9b88b071.tar.xz
monzero-core-e8e4d4e63f21fb438cfb3c35713dbd2d9b88b071.zip
Merge pull request #10776
ef7a86c wallet2: guard optimized coinbase refresh against empty vout (selsta) ACKs: tobtoht, SChernykh
Diffstat (limited to 'src')
-rw-r--r--src/wallet/wallet2.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
index 8a74e711c..f99130081 100644
--- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp
@@ -3362,11 +3362,14 @@ void wallet2::process_parsed_blocks(uint64_t start_height, const std::vector<cry
{
THROW_WALLET_EXCEPTION_IF(txidx >= tx_cache_data.size(), error::wallet_internal_error, "txidx out of range");
const cryptonote::transaction& tx = parsed_blocks[i].block.miner_tx;
- const size_t n_vouts = (m_refresh_type == RefreshType::RefreshOptimizeCoinbase && tx.version < 2) ? 1 : tx.vout.size();
- if (parsed_blocks[i].block.major_version >= hf_version_view_tags)
- geniods.push_back(geniod_params{ tx, n_vouts, txidx });
- else
- tpool.submit(&waiter, [&, n_vouts, txidx](){ geniod(tx, n_vouts, txidx); }, true);
+ const size_t n_vouts = (m_refresh_type == RefreshType::RefreshOptimizeCoinbase && tx.version < 2 && !tx.vout.empty()) ? 1 : tx.vout.size();
+ if (n_vouts > 0)
+ {
+ if (parsed_blocks[i].block.major_version >= hf_version_view_tags)
+ geniods.push_back(geniod_params{ tx, n_vouts, txidx });
+ else
+ tpool.submit(&waiter, [&, n_vouts, txidx](){ geniod(tx, n_vouts, txidx); }, true);
+ }
}
++txidx;
for (size_t j = 0; j < parsed_blocks[i].txes.size(); ++j)