From da8b60cbbf9573ffc4ade67737463562f047a790 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Tue, 10 Oct 2017 10:33:17 +0100 Subject: simplewallet: reject attempts to use too low mixin early This yields a clear error message rather then some possibly confusing more technical errors down the line --- src/simplewallet/simplewallet.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/simplewallet') diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 24e7d54dd..7a3d80058 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -2591,6 +2591,12 @@ bool simple_wallet::transfer_main(int transfer_type, const std::vectoradjust_mixin(fake_outs_count); + if (adjusted_fake_outs_count > fake_outs_count) + { + fail_msg_writer() << (boost::format(tr("ring size %u is too small, minimum is %u")) % (fake_outs_count+1) % (adjusted_fake_outs_count+1)).str(); + return true; + } const size_t min_args = (transfer_type == TransferLocked) ? 3 : 2; if(local_args.size() < min_args) @@ -3196,6 +3202,12 @@ bool simple_wallet::sweep_main(uint64_t below, const std::vector &a local_args.erase(local_args.begin()); } } + uint64_t adjusted_fake_outs_count = m_wallet->adjust_mixin(fake_outs_count); + if (adjusted_fake_outs_count > fake_outs_count) + { + fail_msg_writer() << (boost::format(tr("ring size %u is too small, minimum is %u")) % (fake_outs_count+1) % (adjusted_fake_outs_count+1)).str(); + return true; + } std::vector extra; bool payment_id_seen = false; -- cgit v1.2.3