summaryrefslogtreecommitdiff
path: root/src/cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd.c')
-rw-r--r--src/cmd.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cmd.c b/src/cmd.c
index d121be1..d6093a2 100644
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -4,7 +4,7 @@
#include "cmd.h"
char *getselector(char *str);
-char **getparams(char *str);
+char **getparams(char *str, int *len);
struct cmd eval(char *str)
{
@@ -23,7 +23,7 @@ struct cmd eval(char *str)
}
ret.selector = getselector(str);
- ret.params = getparams(str);
+ ret.params = getparams(str, &ret.plen);
return ret;
}
@@ -42,7 +42,7 @@ char *getselector(char *str)
return selector;
}
-char **getparams(char *str)
+char **getparams(char *str, int *len)
{
char **params = calloc(1, sizeof(char *));
char *tok = strtok(str, "/");
@@ -53,5 +53,10 @@ char **getparams(char *str)
params[i] = calloc(strlen(tok) + 1, sizeof(char));
strcpy(params[i++], tok);
}
+ if (i == 0) {
+ free(params);
+ return NULL;
+ }
+ *len = i;
return params;
}