From 752f5e269e99acdd0c2795a2c2eedc44875d5fed Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Tue, 25 Feb 2025 23:13:54 +0000 Subject: Deduplicate RPC parameter count checks. --- modules/extra/xmlrpc.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'modules/extra') diff --git a/modules/extra/xmlrpc.cpp b/modules/extra/xmlrpc.cpp index 94beb2088..00b7d92ac 100644 --- a/modules/extra/xmlrpc.cpp +++ b/modules/extra/xmlrpc.cpp @@ -145,7 +145,17 @@ public: } xmlrpc_DECREF(params); - if (!event->second->Run(this, client, request)) + auto *eh = event->second; + if (request.data.size() < eh->GetMinParams()) + { + auto error = Anope::printf("Not enough parameters (given %zu, expected %zu)", + request.data.size(), eh->GetMinParams()); + xmlrpc_env_set_fault(&env, RPC::ERR_INVALID_PARAMS, error.c_str()); + SendError(reply, env); + return true; + } + + if (!eh->Run(this, client, request)) return false; this->Reply(request); -- cgit