From 25a5b361fecc8bb649094b67e7fc2b4ae9ab2a8f Mon Sep 17 00:00:00 2001 From: dblock Date: Tue, 14 May 2019 09:31:28 -0400 Subject: [PATCH 1/2] Fix memory leak in str2argv.c --- src/str2argv.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/str2argv.c b/src/str2argv.c index 02b8f11..ee34cb4 100644 --- a/src/str2argv.c +++ b/src/str2argv.c @@ -225,7 +225,10 @@ str2argv(const char *str, int *argc, char ***argv, const char **errmsg) return 1; } - (*argv)[*argc] = NULL;/*XXX*/ + if ((*argv)[*argc] != NULL) { + free((*argv)[*argc]); + (*argv)[*argc] = NULL;/*XXX*/ + } return 0; } From f34466a5ebbe78fb975b628a452e4188aa798429 Mon Sep 17 00:00:00 2001 From: dblock Date: Tue, 14 May 2019 09:31:55 -0400 Subject: [PATCH 2/2] Resolve compiler warnings from missing imports in interactive.c --- examples/interactive.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/examples/interactive.c b/examples/interactive.c index f40b23a..56b7ac8 100644 --- a/examples/interactive.c +++ b/examples/interactive.c @@ -14,6 +14,9 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include +#include +#include #include "str2argv.h" #define UNUSED __attribute__((__unused__)) @@ -41,8 +44,10 @@ main(int argc UNUSED, char *argv[] UNUSED) fflush(stdout); if (str2argv(s, &margc, &margv, &errmsg) == 0) { - for (i = 0; i < margc; i++) - printf("\tmargv[%d] = '%s'\n", i, margv[i]); fflush(stdout); + for (i = 0; i < margc; i++) { + printf("\tmargv[%d] = '%s'\n", i, margv[i]); + fflush(stdout); + } untoked = argv2str(margc, margv); printf("un-toked string: \"%s\"\n", untoked);