From bca8a4bf16d7f817fc2a7192071ada6ce63bfc9f Mon Sep 17 00:00:00 2001 From: cryptozoidberg Date: Thu, 18 Jan 2024 19:16:30 +0100 Subject: [PATCH] fixed endless loop in decoy selection api --- src/currency_core/blockchain_storage.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/currency_core/blockchain_storage.cpp b/src/currency_core/blockchain_storage.cpp index 6dadd4cf..249649d8 100644 --- a/src/currency_core/blockchain_storage.cpp +++ b/src/currency_core/blockchain_storage.cpp @@ -2700,7 +2700,7 @@ bool blockchain_storage::get_target_outs_for_amount_prezarcanum(const COMMAND_RP std::set used; used.insert(details.own_global_index); size_t try_count = 0; - for (uint64_t j = 0; j != decoys_count && try_count < up_index_limit;) + for (uint64_t j = 0; j != decoys_count && try_count++ < up_index_limit;) { size_t g_index = crypto::rand() % up_index_limit; if (used.count(g_index)) @@ -2708,8 +2708,7 @@ bool blockchain_storage::get_target_outs_for_amount_prezarcanum(const COMMAND_RP bool added = add_out_to_get_random_outs(result_outs, amount, g_index, decoys_count, req.use_forced_mix_outs, req.height_upper_limit); used.insert(g_index); if (added) - ++j; - ++try_count; + ++j; } if (result_outs.outs.size() < decoys_count) {