diff options
author | itssteven <steven@tuta.io> | 2018-05-06 17:42:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-06 17:42:27 +0100 |
commit | eb9f3a3294c1c57009ec1b8f6428932caa4ccacf (patch) | |
tree | 67ec1493660fb2ac04f449c2043895275635450e /src | |
parent | Merge pull request #3752 (diff) | |
download | monero-eb9f3a3294c1c57009ec1b8f6428932caa4ccacf.tar.xz |
check_spend_proof
My intention is to mitigate #3761 by returning "bad signature", rather than throwing an error, as the error is triggered inappropriately in the case of checking a different txid than the one used to create the signature, which causes issues for monerophp: https://github.com/monero-integrations/monerophp/issues/72 & my temp fix: https://github.com/monero-integrations/monerophp/pull/74
Diffstat (limited to 'src')
-rw-r--r-- | src/wallet/wallet2.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index d53ed82a9..b14b88a9a 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -8414,8 +8414,9 @@ bool wallet2::check_spend_proof(const crypto::hash &txid, const std::string &mes } std::vector<std::vector<crypto::signature>> signatures = { std::vector<crypto::signature>(1) }; const size_t sig_len = tools::base58::encode(std::string((const char *)&signatures[0][0], sizeof(crypto::signature))).size(); - THROW_WALLET_EXCEPTION_IF(sig_str.size() != header_len + num_sigs * sig_len, - error::wallet_internal_error, "incorrect signature size"); + if( sig_str.size() != header_len + num_sigs * sig_len ) { + return false; + } // decode base58 signatures.clear(); |