From 53078e08879cdef94d37128f6e99ac8e024f36fb Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Mon, 8 Oct 2012 08:08:19 +0100 Subject: more: remove few memory leaks The remaining memory leaks are related to ncurses internals, or the one open file descriptor when user users 'q' to exit. Signed-off-by: Sami Kerola --- text-utils/more.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'text-utils/more.c') diff --git a/text-utils/more.c b/text-utils/more.c index 2ecb218f1..163f016c4 100644 --- a/text-utils/more.c +++ b/text-utils/more.c @@ -432,6 +432,7 @@ int main(int argc, char **argv) } } if (srchopt) { + free(previousre); previousre = xstrdup(initbuf); search(initbuf, stdin, 1); if (noscroll) @@ -454,6 +455,7 @@ int main(int argc, char **argv) if (firstf) { firstf = 0; if (srchopt) { + free(previousre); previousre = xstrdup(initbuf); search(initbuf, f, 1); if (noscroll) @@ -509,6 +511,7 @@ int main(int argc, char **argv) } free(previousre); free(initbuf); + free(Line); reset_tty(); exit(EXIT_SUCCESS); } @@ -766,6 +769,8 @@ void __attribute__((__noreturn__)) end_it(int dummy __attribute__((__unused__))) fflush(stdout); } else putcerr('\n'); + free(previousre); + free(Line); _exit(EXIT_SUCCESS); } @@ -1624,6 +1629,7 @@ void search(char buf[], FILE *file, register int n) } } } + regfree(&re); if (feof(file)) { if (!no_intty) { Currline = saveln; @@ -1632,9 +1638,9 @@ void search(char buf[], FILE *file, register int n) putsout(_("\nPattern not found\n")); end_it(0); } - more_error(_("Pattern not found")); free(previousre); previousre = NULL; + more_error(_("Pattern not found")); } } -- cgit v1.2.3-55-g7522