]> git.wh0rd.org Git - nano.git/commitdiff
2010-04-02 Chris Allegretta <chrisa@asty.org>
authorChris Allegretta <chrisa@asty.org>
Sat, 3 Apr 2010 02:39:18 +0000 (02:39 +0000)
committerChris Allegretta <chrisa@asty.org>
Sat, 3 Apr 2010 02:39:18 +0000 (02:39 +0000)
        * 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.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4490 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/files.c

index 0437b363b309dee1ff6be100c66940d693bead23..3c4edf96e741c214641bc5f968cc892733c6efb4 100644 (file)
--- 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
index 5e922a4d682e770795afb2a971a87041d9ac71ec..8e63903a884a621d93c2deaeb65e83b48826a998 100644 (file)
@@ -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)