summaryrefslogtreecommitdiff
path: root/server/src/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/util.c')
-rw-r--r--server/src/util.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/server/src/util.c b/server/src/util.c
index 068da0a..f9053f5 100644
--- a/server/src/util.c
+++ b/server/src/util.c
@@ -58,16 +58,19 @@ char* str_strip(char *str) {
}
char** str_split(char *str, const char *delim) {
- char *saveptr;
- char *token = strtok_r(str, delim, &saveptr);
- token = str_strip(token);
+ size_t count = 0;
char **ret = NULL;
- int count = -1;
+ char *token;
+ char *saveptr;
+ token = strtok_r(str, delim, &saveptr);
while (token != NULL) {
count++;
- ret = realloc(ret, sizeof(char*) * (count+1));
- ret[count] = token;
+ ret = realloc(ret, sizeof(char*) * count);
+ ret[count-1] = strdup(str_strip(token));
token = strtok_r(NULL, delim, &saveptr);
}
+ count++;
+ ret = realloc(ret, sizeof(char*) * count);
+ ret[count-1] = NULL;
return ret;
}