summaryrefslogtreecommitdiff
path: root/modules/extra
diff options
context:
space:
mode:
Diffstat (limited to 'modules/extra')
-rw-r--r--modules/extra/xmlrpc.cpp12
1 files changed, 11 insertions, 1 deletions
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);