Fix module commands with no arguments
Passing zero as the argument count would lead to a malloc for zero bytes which would always cause a failure.
This commit is contained in:
@ -136,10 +136,11 @@ static MODULECMD* command_create(const char *identifier, const char *domain,
|
||||
MODULECMDFN entry_point, int argc,
|
||||
modulecmd_arg_type_t* argv)
|
||||
{
|
||||
ss_dassert((argc && argv) || (argc == 0 && argv == NULL));
|
||||
MODULECMD *rval = MXS_MALLOC(sizeof(*rval));
|
||||
char *id = MXS_STRDUP(identifier);
|
||||
char *dm = MXS_STRDUP(domain);
|
||||
modulecmd_arg_type_t *types = MXS_MALLOC(sizeof(*types) * argc);
|
||||
modulecmd_arg_type_t *types = MXS_MALLOC(sizeof(*types) * (argc ? argc : 1));
|
||||
|
||||
if (rval && id && dm && types)
|
||||
{
|
||||
@ -154,6 +155,13 @@ static MODULECMD* command_create(const char *identifier, const char *domain,
|
||||
types[i] = argv[i];
|
||||
}
|
||||
|
||||
if (argc == 0)
|
||||
{
|
||||
/** The command requires no arguments */
|
||||
types[0].type = MODULECMD_ARG_NONE;
|
||||
types[0].description = "";
|
||||
}
|
||||
|
||||
rval->func = entry_point;
|
||||
rval->identifier = id;
|
||||
rval->domain = dm;
|
||||
|
Reference in New Issue
Block a user