aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/command.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/command.c b/src/command.c
index 616132bea..3d4e2ccd5 100644
--- a/src/command.c
+++ b/src/command.c
@@ -1387,16 +1387,19 @@ static CommandEntry *getCommandEntryAndCheckArgcAndPermission(int fd,
static CommandEntry *getCommandEntryFromString(char *string, int *permission)
{
- CommandEntry *cmd;
+ CommandEntry *cmd = NULL;
char *argv[COMMAND_ARGV_MAX] = { NULL };
- int argc = buffer2array(string, argv, COMMAND_ARGV_MAX);
+ char *duplicated = xstrdup(string);
+ int argc = buffer2array(duplicated, argv, COMMAND_ARGV_MAX);
if (0 == argc)
- return NULL;
+ goto out;
cmd = getCommandEntryAndCheckArgcAndPermission(0, permission,
argc, argv);
+out:
+ free(duplicated);
return cmd;
}