>From 3bbe6e7c42fb22c80ce1e239768679193dfe5bdf Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 30 Oct 2019 18:15:14 -0700 Subject: [PATCH] Fix bug with lock file on nonstandard filesystem MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * src/filelock.c (create_lock_file): Don’t disable user write access to the lock file (Bug#37884). --- src/filelock.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/filelock.c b/src/filelock.c index ff25d6475d..2077287345 100644 --- a/src/filelock.c +++ b/src/filelock.c @@ -402,9 +402,15 @@ create_lock_file (char *lfname, char *lock_info_str, bool force) ptrdiff_t lock_info_len; lock_info_len = strlen (lock_info_str); err = 0; + + /* Make the lock file readable to others, so that others' sessions + can read it. Even though nobody should write to the lock file, + keep it user-writable to work around problems on nonstandard file + systems that prohibit unlinking readonly files (Bug#37884). */ if (emacs_write (fd, lock_info_str, lock_info_len) != lock_info_len - || fchmod (fd, S_IRUSR | S_IRGRP | S_IROTH) != 0) + || fchmod (fd, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) != 0) err = errno; + /* There is no need to call fsync here, as the contents of the lock file need not survive system crashes. */ if (emacs_close (fd) != 0) -- 2.23.0