diff options
author | Ben Woosley <ben.woosley@gmail.com> | 2019-04-04 00:39:04 -0700 |
---|---|---|
committer | Ben Woosley <ben.woosley@gmail.com> | 2019-04-13 18:52:11 -0700 |
commit | 510c6532bae9abc5beda1c126c945923a64680cb (patch) | |
tree | 08817bc88ad774370833066ca14714a6f8a2d262 /src/rpc/misc.cpp | |
parent | ba54342c9dd3f2e5cdeed9ac57f1924f0d885cc6 (diff) | |
download | bitcoin-510c6532bae9abc5beda1c126c945923a64680cb.tar.xz |
Extract ParseDescriptorRange
So as to be consistently informative when the checks fail, and
to protect against unintentional divergence among the checks.
Diffstat (limited to 'src/rpc/misc.cpp')
-rw-r--r-- | src/rpc/misc.cpp | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp index 0a97f80297..e07b02aa23 100644 --- a/src/rpc/misc.cpp +++ b/src/rpc/misc.cpp @@ -23,6 +23,7 @@ #include <warnings.h> #include <stdint.h> +#include <tuple> #ifdef HAVE_MALLOC_INFO #include <malloc.h> #endif @@ -214,18 +215,7 @@ UniValue deriveaddresses(const JSONRPCRequest& request) int64_t range_end = 0; if (request.params.size() >= 2 && !request.params[1].isNull()) { - auto range = ParseRange(request.params[1]); - if (range.first < 0) { - throw JSONRPCError(RPC_INVALID_PARAMETER, "Range should be greater or equal than 0"); - } - if ((range.second >> 31) != 0) { - throw JSONRPCError(RPC_INVALID_PARAMETER, "End of range is too high"); - } - if (range.second >= range.first + 1000000) { - throw JSONRPCError(RPC_INVALID_PARAMETER, "Range is too large"); - } - range_begin = range.first; - range_end = range.second; + std::tie(range_begin, range_end) = ParseDescriptorRange(request.params[1]); } FlatSigningProvider provider; |