aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2016-06-16 11:05:32 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2016-06-16 11:06:51 +0200
commit62fcf27bd8d796dbe6726c99e6301c76dc9b02ef (patch)
tree2a2ca22059da564bcba972d61107e0bab371de9a /src
parente4bb4a85a551367d9479301bbad1b089781e494d (diff)
parent6fa950a57334e93e70d806532ee517cbd75a2338 (diff)
downloadbitcoin-62fcf27bd8d796dbe6726c99e6301c76dc9b02ef.tar.xz
Merge #8171: [RPC] Fix createrawtx sequence number unsigned int parsing
6fa950a [RPC] Fix createrawtx sequence number unsigned int parsing (Jonas Schnelli)
Diffstat (limited to 'src')
-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);