2009-12-20 Brian Szymanski <skibrianski via Savannah>

* src/files.c (write_file): Check stat struct exists, and if not use just obtained stat data.    
          Fixes Ubuntu bug 471568, "reproducible crash in nano on trying to save to a file 
          different than the one specified on the command line".



git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4467 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
Chris Allegretta 2009-12-20 05:46:35 +00:00
parent d9be86f45b
commit 869aca4392
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2009-12-20 Brian Szymanski <skibrianski via Savannah>
* src/files.c (write_file): Check stat struct exists, and if not use just obtained stat data.
Fixes Ubuntu bug 471568, "reproducible crash in nano on trying to save to a file
different than the one specified on the command line".
2009-12-15 Chris Allegretta <chrisa@asty.org> 2009-12-15 Chris Allegretta <chrisa@asty.org>
* doc/nanorc.sample.in - Remove erroneous 'set suspendenable' as it's actually a * doc/nanorc.sample.in - Remove erroneous 'set suspendenable' as it's actually a
key binding (e.g. 'bind M-Z suspendenable all') and not a settable flag. Fixes key binding (e.g. 'bind M-Z suspendenable all') and not a settable flag. Fixes

View File

@ -1499,6 +1499,13 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type
* one). */ * one). */
realexists = (stat(realname, &st) != -1); realexists = (stat(realname, &st) != -1);
/* if we have not stat()d this file before (say, the user just
* specified it interactively), use the info we just got from
* stat()ing or else we will chase null pointers when we do
* modtime checks, preserve file times, etc. during backup */
if(openfile->current_stat == NULL)
openfile->current_stat = &st;
#ifndef NANO_TINY #ifndef NANO_TINY
/* We backup only if the backup toggle is set, the file isn't /* We backup only if the backup toggle is set, the file isn't
* temporary, and the file already exists. Furthermore, if we * temporary, and the file already exists. Furthermore, if we