From 9d46a7a9a4d70756bab24de96221bd3a44ef8f46 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Wed, 30 Oct 2013 10:22:47 +0100
Subject: sed: fix memory leak in 'r FILE' command

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 editors/sed.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

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;
-- 
cgit v1.2.3-55-g6feb