Bug 3447 – std.file uses unconventional file permissions

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
phobos
Product
D
Version
D2
Platform
All
OS
Linux
Creation time
2009-10-29T04:03:00Z
Last change time
2015-06-09T01:26:55Z
Assigned to
bugzilla
Creator
bugzilla

Comments

Comment #0 by bugzilla — 2009-10-29T04:03:55Z
The Posix version of std.file.write() creates files with the permission 0660. I think most users will expect it to be the conventional 0666, which is the default for the C fopen() function. std.file.copy() also uses 0660, whereas the Posix cp command preserves the permissions of the source file (as well as ownership and timestamps). The security aspect should be taken care of by the process' umask, which in the vast majority of cases will be 0022. (The resulting file will then have permissions 0644.)
Comment #1 by andrei — 2009-10-29T06:04:42Z
Good catch, thanks.
Comment #2 by bugzilla — 2009-10-29T06:21:23Z
I just grepped through all of Phobos for "0660", and I see that the std.mmfile module also uses these permissions. I'm not sure whether this should be changed, though, because I haven't really used memory-mapped files and don't know how they are used. Just thought I should mention it.
Comment #3 by bugzilla — 2010-06-14T03:59:33Z
Comment #4 by bugzilla — 2010-08-11T02:44:40Z
Fixed DMD 2.048