diff --git a/ChangeLog b/ChangeLog index 0437b363b309dee1ff6be100c66940d693bead23..3c4edf96e741c214641bc5f968cc892733c6efb4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-04-02 Chris Allegretta <chrisa@asty.org> + * files.c (do_writeout): Expand modification check to include both the + original file's device ID and inode number as reasons to warn the + user that the file has been modified. Based on security article on nano + by Dan Rosenberg. + 2010-03-21 Chris Allegretta <chrisa@asty.org> * nano.c (page_stdin et al): Don't attempt to reset/reopen the terminal settings when reading stdin if it was aborted with SIGINT. May fix Savannah diff --git a/src/files.c b/src/files.c index 5e922a4d682e770795afb2a971a87041d9ac71ec..8e63903a884a621d93c2deaeb65e83b48826a998 100644 --- a/src/files.c +++ b/src/files.c @@ -2126,7 +2126,8 @@ bool do_writeout(bool exiting) } #ifndef NANO_TINY - if (name_exists && openfile->current_stat && openfile->current_stat->st_mtime < st.st_mtime) { + if (name_exists && openfile->current_stat && openfile->current_stat->st_mtime < st.st_mtime || + openfile->current_stat->st_dev != st.st_dev || openfile->current_stat->st_ino != st.st_ino) { i = do_yesno_prompt(FALSE, _("File was modified since you opened it, continue saving ? ")); if (i == 0 || i == -1)