From 9eca195990ac3e6fc1aa54e2dbecdb4f4c7c82ce Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Sat, 2 Jan 2016 16:01:04 +0000 Subject: [PATCH] Plugging three tiny memory leaks. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5520 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 3 +++ src/text.c | 20 +++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 47f78e0c..29c0fe0a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2016-01-02 Benno Schulenberg + * src/text.c (do_spell, do_formatter): Plug three tiny memory leaks. + 2015-12-31 Benno Schulenberg * src/text.c (do_formatter): Restore the cursor position differently. * src/search.c (do_gotopos): Delete this now unused function. diff --git a/src/text.c b/src/text.c index ff1a9f63..c116573a 100644 --- a/src/text.c +++ b/src/text.c @@ -2850,7 +2850,7 @@ void do_spell(void) { bool status; FILE *temp_file; - char *temp = safe_tempfile(&temp_file); + char *temp; const char *spell_msg; if (ISSET(RESTRICTED)) { @@ -2858,6 +2858,8 @@ void do_spell(void) return; } + temp = safe_tempfile(&temp_file); + if (temp == NULL) { statusbar(_("Error writing temp file: %s"), strerror(errno)); return; @@ -3234,7 +3236,7 @@ void do_formatter(void) { bool status; FILE *temp_file; - char *temp = safe_tempfile(&temp_file); + char *temp; int format_status; size_t current_x_save = openfile->current_x; size_t pww_save = openfile->placewewant; @@ -3246,6 +3248,13 @@ void do_formatter(void) static char **formatargs = NULL; char *finalstatus = NULL; + if (openfile->totsize == 0) { + statusbar(_("Finished")); + return; + } + + temp = safe_tempfile(&temp_file); + if (temp == NULL) { statusbar(_("Error writing temp file: %s"), strerror(errno)); return; @@ -3261,11 +3270,6 @@ void do_formatter(void) return; } - if (openfile->totsize == 0) { - statusbar(_("Finished")); - return; - } - blank_bottombars(); statusbar(_("Invoking formatter, please wait")); doupdate(); @@ -3299,6 +3303,8 @@ void do_formatter(void) /* If we couldn't fork, get out. */ if (pid_format < 0) { statusbar(_("Could not fork")); + unlink(temp); + free(temp); return; }