From 486f1f2fd2170093b00a34d50530657af0128a72 Mon Sep 17 00:00:00 2001 From: CJ Cobb <46455409+cjcobb23@users.noreply.github.com> Date: Tue, 8 Nov 2022 14:41:18 -0500 Subject: [PATCH] return error on negative limit (#394) --- src/rpc/RPC.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/rpc/RPC.cpp b/src/rpc/RPC.cpp index f149f310..26a700f6 100644 --- a/src/rpc/RPC.cpp +++ b/src/rpc/RPC.cpp @@ -325,14 +325,15 @@ getLimit(RPC::Context const& context, std::uint32_t& limit) if (context.params.contains(JS(limit))) { + std::string errMsg = "Invalid field 'limit', not unsigned integer."; if (!context.params.at(JS(limit)).is_int64()) - return Status{Error::rpcINVALID_PARAMS, "limitNotInt"}; + return Status{Error::rpcINVALID_PARAMS, errMsg}; - limit = context.params.at(JS(limit)).as_int64(); - if (limit <= 0) - return Status{Error::rpcINVALID_PARAMS, "limitNotPositive"}; + int input = context.params.at(JS(limit)).as_int64(); + if (input <= 0) + return Status{Error::rpcINVALID_PARAMS, errMsg}; - limit = std::clamp(limit, lo, hi); + limit = std::clamp(static_cast(input), lo, hi); } else {