* fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
This fixes some race conditions on the permissions of any newly created file.
This commit is contained in:
parent
41bed37d15
commit
15e3a074a6
2 changed files with 17 additions and 4 deletions
|
@ -1,5 +1,9 @@
|
|||
2011-07-18 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
|
||||
This fixes some race conditions on the permissions of any newly
|
||||
created file.
|
||||
|
||||
* alloc.c (valid_pointer_p): Use pipe, not open.
|
||||
This fixes some permissions issues when debugging.
|
||||
|
||||
|
|
17
src/fileio.c
17
src/fileio.c
|
@ -1937,10 +1937,19 @@ on the system, we copy the SELinux context of FILE to NEWNAME. */)
|
|||
| (NILP (ok_if_already_exists) ? O_EXCL : 0),
|
||||
S_IREAD | S_IWRITE);
|
||||
#else /* not MSDOS */
|
||||
ofd = emacs_open (SSDATA (encoded_newname),
|
||||
O_WRONLY | O_TRUNC | O_CREAT
|
||||
| (NILP (ok_if_already_exists) ? O_EXCL : 0),
|
||||
0666);
|
||||
{
|
||||
int new_mask = 0666;
|
||||
if (input_file_statable_p)
|
||||
{
|
||||
if (!NILP (preserve_uid_gid))
|
||||
new_mask = 0600;
|
||||
new_mask &= st.st_mode;
|
||||
}
|
||||
ofd = emacs_open (SSDATA (encoded_newname),
|
||||
(O_WRONLY | O_TRUNC | O_CREAT
|
||||
| (NILP (ok_if_already_exists) ? O_EXCL : 0)),
|
||||
new_mask);
|
||||
}
|
||||
#endif /* not MSDOS */
|
||||
if (ofd < 0)
|
||||
report_file_error ("Opening output file", Fcons (newname, Qnil));
|
||||
|
|
Loading…
Add table
Reference in a new issue