From edc791c3a8254f755b2c3ad3d1d2584d384b52af Mon Sep 17 00:00:00 2001 From: bpc2003 Date: Wed, 12 Mar 2025 14:29:39 -0400 Subject: Fixed some memory bugs --- src/cmd.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/cmd.c') 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; } -- cgit v1.2.3