From: Denys Vlasenko Date: Wed, 30 Oct 2013 09:22:47 +0000 (+0100) Subject: sed: fix memory leak in 'r FILE' command X-Git-Tag: 1_22_0~67 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=9d46a7a9a4d70756bab24de96221bd3a44ef8f46;p=oweals%2Fbusybox.git sed: fix memory leak in 'r FILE' command Signed-off-by: Denys Vlasenko --- diff --git a/editors/sed.c b/editors/sed.c index ef462843b..e3cce433e 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -848,7 +848,7 @@ static sed_cmd_t *branch_to(char *label) static void append(char *s) { - llist_add_to_end(&G.append_head, xstrdup(s)); + llist_add_to_end(&G.append_head, s); } static void flush_append(void) @@ -1181,7 +1181,7 @@ static void process_files(void) /* Append line to linked list to be printed later */ case 'a': - append(sed_cmd->string); + append(xstrdup(sed_cmd->string)); break; /* Insert text before this line */ @@ -1203,11 +1203,10 @@ static void process_files(void) rfile = fopen_for_read(sed_cmd->string); if (rfile) { char *line; - while ((line = xmalloc_fgetline(rfile)) != NULL) append(line); - xprint_and_close_file(rfile); + fclose(rfile); } break;