diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 186d3c5cd34..d415bb09c6b 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -2263,7 +2263,9 @@ bool CWallet::SignTransaction(CMutableTransaction &tx) int nIn = 0; for (auto& input : tx.vin) { std::map::const_iterator mi = mapWallet.find(input.prevout.hash); - assert(mi != mapWallet.end() && input.prevout.n < mi->second.tx->vout.size()); + if(mi == mapWallet.end() || input.prevout.n >= mi->second.tx->vout.size()) { + return false; + } const CScript& scriptPubKey = mi->second.tx->vout[input.prevout.n].scriptPubKey; const CAmount& amount = mi->second.tx->vout[input.prevout.n].nValue; SignatureData sigdata;