wallet2: reject non-monotonic rct output distributions

(cherry picked from commit b99d15f08d80a8cad6dee88628192ba0411544fb)
This commit is contained in:
selsta
2026-10-04 18:50:20 -04:00
committed by such-gitea
parent 16045bb71d
commit 06fa8be413
+2
View File
@@ -9295,6 +9295,8 @@ void wallet2::get_outs(std::vector<std::vector<tools::wallet2::get_outs_entry>>
// check we're clear enough of rct start, to avoid corner cases below
THROW_WALLET_EXCEPTION_IF(rct_offsets.size() <= CRYPTONOTE_DEFAULT_TX_SPENDABLE_AGE,
error::get_output_distribution, "Not enough rct outputs");
THROW_WALLET_EXCEPTION_IF(!std::is_sorted(rct_offsets.begin(), rct_offsets.end()),
error::get_output_distribution, "Daemon reports non-monotonic rct output distribution");
THROW_WALLET_EXCEPTION_IF(rct_offsets.back() <= max_rct_index,
error::get_output_distribution, "Daemon reports suspicious number of rct outputs");
}