From 9847b36a12de86d0db77a737c3a9fb29a19aaead Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Tue, 8 Aug 2017 06:53:43 +0300 Subject: [PATCH] Fix invalid module command argument count The module commands were always given the maximum argument count even if less arguments were given. --- server/core/modulecmd.cc | 4 ++++ server/core/test/testmodulecmd.cc | 2 ++ 2 files changed, 6 insertions(+) diff --git a/server/core/modulecmd.cc b/server/core/modulecmd.cc index 57c5463a9..7849de63a 100644 --- a/server/core/modulecmd.cc +++ b/server/core/modulecmd.cc @@ -519,6 +519,10 @@ MODULECMD_ARG* modulecmd_arg_parse(const MODULECMD *cmd, int argc, const void ** modulecmd_arg_free(arg); arg = NULL; } + else + { + arg->argc = argc; + } } } else diff --git a/server/core/test/testmodulecmd.cc b/server/core/test/testmodulecmd.cc index 270801a72..c7959f046 100644 --- a/server/core/test/testmodulecmd.cc +++ b/server/core/test/testmodulecmd.cc @@ -206,6 +206,7 @@ int test_optional_arguments() arg = modulecmd_arg_parse(cmd, 1, params2); TEST(arg, "Parsing arguments should succeed"); + TEST(arg->argc == 1, "Only one argument should be given"); TEST(strlen(modulecmd_get_error()) == 0, "Error message should be empty"); TEST(modulecmd_call_command(cmd, arg, NULL), "Module call should be successful"); TEST(strlen(modulecmd_get_error()) == 0, "Error message should be empty"); @@ -213,6 +214,7 @@ int test_optional_arguments() arg = modulecmd_arg_parse(cmd, 0, params1); TEST(arg, "Parsing arguments should succeed"); + TEST(arg->argc == 0, "No arguments should be given"); TEST(strlen(modulecmd_get_error()) == 0, "Error message should be empty"); TEST(modulecmd_call_command(cmd, arg, NULL), "Module call should be successful"); TEST(strlen(modulecmd_get_error()) == 0, "Error message should be empty");