From aaa7fa0f943817d344fab0a95340744f6acebf9d Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Tue, 29 Apr 2008 17:09:07 +0300 Subject: [PATCH] Plug memleak in parseSimplePart() --- build/parsePreamble.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/build/parsePreamble.c b/build/parsePreamble.c index 114790c..1676228 100644 --- a/build/parsePreamble.c +++ b/build/parsePreamble.c @@ -71,28 +71,32 @@ static int parseSimplePart(const char *line, char **name, int *flag) { char *tok; char *linebuf = xstrdup(line); + int rc; /* Throw away the first token (the %xxxx) */ (void)strtok(linebuf, " \t\n"); *name = NULL; if (!(tok = strtok(NULL, " \t\n"))) { - free(linebuf); - return 0; + rc = 0; + goto exit; } if (!strcmp(tok, "-n")) { if (!(tok = strtok(NULL, " \t\n"))) { - free(linebuf); - return 1; + rc = 1; + goto exit; } *flag = PART_NAME; } else { *flag = PART_SUBNAME; } *name = xstrdup(tok); + rc = strtok(NULL, " \t\n") ? 1 : 0; - return (strtok(NULL, " \t\n")) ? 1 : 0; +exit: + free(linebuf); + return rc; } /** -- 2.7.4