]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug with lock file on nonstandard filesystem
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 31 Oct 2019 01:15:14 +0000 (18:15 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 31 Oct 2019 01:15:53 +0000 (18:15 -0700)
* src/filelock.c (create_lock_file):
Don’t disable user write access to the lock file (Bug#37884).

src/filelock.c

index ff25d6475de67972f55b476b6b349a4119237cfe..2077287345c7274a1349ef90d6df797ca379f41e 100644 (file)
@@ -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)