nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit 869aca43929a14023940437199b7d70438738271
parent d9be86f45bb0bd76a32784558a5b2c18a1dd7bbd
Author: Chris Allegretta <chrisa@asty.org>
Date:   Sun, 20 Dec 2009 05:46:35 +0000

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

Diffstat:
MChangeLog | 5+++++
Msrc/files.c | 7+++++++
2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -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> * 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 diff --git a/src/files.c b/src/files.c @@ -1499,6 +1499,13 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type * one). */ 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 /* We backup only if the backup toggle is set, the file isn't * temporary, and the file already exists. Furthermore, if we