Fix bug with lock file on nonstandard filesystem

* src/filelock.c (create_lock_file):
Don’t disable user write access to the lock file (Bug#37884).
This commit is contained in:
Paul Eggert 2019-10-30 18:15:14 -07:00
parent 48fdfd8b93
commit e65be8cc5b

View 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)