From: David Lawrence Ramsey Date: Fri, 22 Oct 2004 03:33:54 +0000 (+0000) Subject: apply patch from DB: in write_file(), if we've tried to write to an X-Git-Tag: v1.3.5~108 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=ca92becf9dda2b0dcebb60d32f9a9d4a35f9500c;p=nano.git apply patch from DB: in write_file(), if we've tried to write to an unwritable file and we're not prepending, tempname is NULL when it's passed to unlink(); this can cause problems if unlink() can't handle NULL, so don't call it in that case git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2012 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/ChangeLog b/ChangeLog index 670f5c17..7e03e593 100644 --- a/ChangeLog +++ b/ChangeLog @@ -109,6 +109,11 @@ CVS code - do_writeout_void() - Call display_main_list(), for consistency with do_insertfile_void(). (DLR) + write_file() + - If we've tried to write to an unwritable file and we're not + prepending, tempname is NULL when it's passed to unlink(). + This can cause problems if unlink() can't handle NULL, so + don't call it in that case. (David Benbennick) write_marked() - Remove check for MARK_ISSET's not being set. (DLR) open_prevfile(), open_nextfile() diff --git a/src/files.c b/src/files.c index 72b84a47..cc0bf201 100644 --- a/src/files.c +++ b/src/files.c @@ -1602,7 +1602,9 @@ int write_file(const char *name, int tmp, int append, int nonamechange) /* First, just give up if we couldn't even open the file. */ if (fd == -1) { statusbar(_("Error writing %s: %s"), realname, strerror(errno)); - unlink(tempname); + /* tempname has been set only if we're prepending. */ + if (tempname != NULL) + unlink(tempname); goto cleanup_and_exit; }