diff options
-rw-r--r-- | src/str.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -175,7 +175,7 @@ char *join_ex(char *separator, ...) { } // Initialize array - argv = calloc(argc + 1, sizeof(char *)); + argv = calloc(argc + 1, sizeof(char **)); if (argv == NULL) { perror("join_ex calloc failed"); return NULL; @@ -196,6 +196,7 @@ char *join_ex(char *separator, ...) { char **tmp = realloc(argv, (argc + 1) * sizeof(char *)); if (tmp == NULL) { perror("join_ex realloc failed"); + guard_free(argv); return NULL; } else { argv = tmp; @@ -583,7 +584,7 @@ char **strdup_array(char **array) { for (elems = 0; array[elems] != NULL; elems++); // Create new array - result = calloc(elems + 1, sizeof(result)); + result = calloc(elems + 1, sizeof(*result)); for (size_t i = 0; i < elems; i++) { result[i] = strdup(array[i]); } |