diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index 3060d8e5e..8ab4b3163 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -2230,11 +2230,14 @@ Json::Value RPCHandler::doRpcCommand(const std::string& strCommand, Json::Value& { // cLog(lsTRACE) << "doRpcCommand:" << strCommand << ":" << jvParams; - if (!jvParams.isArray() || jvParams.size() > 1) + if (!jvParams.isArray() || jvParams.size() < 1) return rpcError(rpcINVALID_PARAMS); Json::Value jvRequest = jvParams[0u]; + if (!jvRequest.isObject() || !jvRequest.isMember("command")) + return rpcError(rpcINVALID_PARAMS); + jvRequest["command"] = strCommand; Json::Value jvResult = doCommand(jvRequest, iRole);