aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatt Corallo <[email protected]>2017-01-28 11:32:34 -0500
committerMatt Corallo <[email protected]>2017-02-02 17:32:27 -0500
commit922bea90c274d45b13812a031242964aa15b6c1d (patch)
tree346f2e9d3d3ec0179eecfe2a3e50d7a76a1dae94 /src
parentFail in DecodeHexTx if there is extra data at the end (diff)
downloaddiscoin-922bea90c274d45b13812a031242964aa15b6c1d.tar.xz
discoin-922bea90c274d45b13812a031242964aa15b6c1d.zip
Better handle invalid parameters to signrawtransaction
This silently skips trying to merge signatures from inputs which do not exist from transactions provided to signrawtransaction, instead of hitting an assert.
Diffstat (limited to 'src')
-rw-r--r--src/rpc/rawtransaction.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp
index c10de45f8..21396ebb0 100644
--- a/src/rpc/rawtransaction.cpp
+++ b/src/rpc/rawtransaction.cpp
@@ -835,7 +835,9 @@ UniValue signrawtransaction(const JSONRPCRequest& request)
// ... and merge in other signatures:
BOOST_FOREACH(const CMutableTransaction& txv, txVariants) {
- sigdata = CombineSignatures(prevPubKey, TransactionSignatureChecker(&txConst, i, amount), sigdata, DataFromTransaction(txv, i));
+ if (txv.vin.size() > i) {
+ sigdata = CombineSignatures(prevPubKey, TransactionSignatureChecker(&txConst, i, amount), sigdata, DataFromTransaction(txv, i));
+ }
}
UpdateTransaction(mergedTx, i, sigdata);