aboutsummaryrefslogtreecommitdiff
path: root/src/rpc
diff options
context:
space:
mode:
authorJonas Schnelli <dev@jonasschnelli.ch>2016-06-08 15:34:25 +0200
committerJonas Schnelli <dev@jonasschnelli.ch>2016-06-08 15:43:28 +0200
commit6fa950a57334e93e70d806532ee517cbd75a2338 (patch)
tree9a15b57f8c29ba284504d56cd4c6bbf67c59b134 /src/rpc
parent6a034ed89891e4f23eeaccba928731f32c8e2057 (diff)
downloadbitcoin-6fa950a57334e93e70d806532ee517cbd75a2338.tar.xz
[RPC] Fix createrawtx sequence number unsigned int parsing
Diffstat (limited to 'src/rpc')
-rw-r--r--src/rpc/rawtransaction.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp
index 992914f88c..9723e394d6 100644
--- a/src/rpc/rawtransaction.cpp
+++ b/src/rpc/rawtransaction.cpp
@@ -388,8 +388,13 @@ UniValue createrawtransaction(const UniValue& params, bool fHelp)
// set the sequence number if passed in the parameters object
const UniValue& sequenceObj = find_value(o, "sequence");
- if (sequenceObj.isNum())
- nSequence = sequenceObj.get_int();
+ if (sequenceObj.isNum()) {
+ int64_t seqNr64 = sequenceObj.get_int64();
+ if (seqNr64 < 0 || seqNr64 > std::numeric_limits<uint32_t>::max())
+ throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter, sequence number is out of range");
+ else
+ nSequence = (uint32_t)seqNr64;
+ }
CTxIn in(COutPoint(txid, nOutput), CScript(), nSequence);