Commit b95a9c0c authored by Paul Eggert's avatar Paul Eggert

Fix a race with verify-visited-file-modtime.

Since at least 1991 Emacs has ignored an mtime difference of no
more than one second, but my guess is that this was to work around
file system bugs that were fixed long ago.  Since the race is
causing problems now, let's remove that code.
* fileio.c (Fverify_visited_file_modtime): Do not accept a file
whose time stamp is off by no more than a second.  Insist that the
file time stamps match exactly.

Fixes: debbugs:12863
parent 231d8498
2012-11-13 Paul Eggert <eggert@cs.ucla.edu>
Fix a race with verify-visited-file-modtime (Bug#12863).
Since at least 1991 Emacs has ignored an mtime difference of no
more than one second, but my guess is that this was to work around
file system bugs that were fixed long ago. Since the race is
causing problems now, let's remove that code.
* fileio.c (Fverify_visited_file_modtime): Do not accept a file
whose time stamp is off by no more than a second. Insist that the
file time stamps match exactly.
2012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
* frame.h (struct frame): Convert external_tool_bar member to
......
......@@ -5076,7 +5076,7 @@ See Info node `(elisp)Modification Time' for more details. */)
struct stat st;
Lisp_Object handler;
Lisp_Object filename;
EMACS_TIME mtime, diff;
EMACS_TIME mtime;
if (NILP (buf))
b = current_buffer;
......@@ -5101,13 +5101,7 @@ See Info node `(elisp)Modification Time' for more details. */)
mtime = (stat (SSDATA (filename), &st) == 0
? get_stat_mtime (&st)
: time_error_value (errno));
if ((EMACS_TIME_EQ (mtime, b->modtime)
/* If both exist, accept them if they are off by one second. */
|| (EMACS_TIME_VALID_P (mtime) && EMACS_TIME_VALID_P (b->modtime)
&& ((diff = (EMACS_TIME_LT (mtime, b->modtime)
? sub_emacs_time (b->modtime, mtime)
: sub_emacs_time (mtime, b->modtime))),
EMACS_TIME_LE (diff, make_emacs_time (1, 0)))))
if (EMACS_TIME_EQ (mtime, b->modtime)
&& (st.st_size == b->modtime_size
|| b->modtime_size < 0))
return Qt;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment