From 22e15eb7add6baf4648dc043bf4a6e4ceb58c014 Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Wed, 5 Apr 2006 02:56:47 +0000
Subject: [PATCH] in write_file(), don't free backupname before displaying it
 in a statusbar error message

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3347 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog   | 4 ++++
 src/files.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index dd62b64a..ad58bad2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,10 @@ CVS code -
 	  do_last_file(), do_help_void(), and do_browser_help(); changes
 	  to do_browser(), parse_browser_input(), shortcut_init(),
 	  do_help(), and help_init(). (DLR)
+- files.c:
+  write_file()
+	- Don't free backupname before displaying it in a statusbar error
+	  message. (DLR, found by Bill Marcum)
 - doc/nano.1, doc/nanorc.5, doc/rnano.1, doc/nano.texi:
 	- Update the copyright years to include 2006. (DLR)
 - doc/nanorc.sample:
diff --git a/src/files.c b/src/files.c
index f5be6061..0caf5f18 100644
--- a/src/files.c
+++ b/src/files.c
@@ -1414,7 +1414,6 @@ int write_file(const char *name, FILE *f_open, bool tmp, append_type
 		openfile->current_stat->st_uid,
 		openfile->current_stat->st_gid) == -1 ||
 		utime(backupname, &filetime) == -1) {
-	    free(backupname);
 	    if (copy_status == -1) {
 		statusbar(_("Error reading %s: %s"), realname,
 			strerror(errno));
@@ -1422,6 +1421,7 @@ int write_file(const char *name, FILE *f_open, bool tmp, append_type
 	    } else
 		statusbar(_("Error writing %s: %s"), backupname,
 			strerror(errno));
+	    free(backupname);
 	    goto cleanup_and_exit;
 	}
 
-- 
GitLab