mirror of
https://codeberg.org/guix/guix.git
synced 2026-01-25 20:15:25 -06:00
activation: Create directory with specified perms in ‘mkdir-p/perms’.
There is currently a window of time between when the desired directory is created and when its permissions are changed. During this time, its permissions are restricted only by the umask. Of course, in the "directory already exists" case, this doesn't matter, but if the directory has been specifically deleted ahead of time so that it is created afresh, this is an unnecessary window. We can avoid this by passing the caller-provided BITS to 'mkdirat' when attempting to create the last directory. * gnu/build/activation.scm (mkdir-p/perms): Create target directory with BITS permissions. Change-Id: I03d2c620872e86b6f591abe0f1c8317aa1245383 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
6a8a6171a7
commit
4e6df8040e
1 changed files with 3 additions and 1 deletions
|
|
@ -113,7 +113,9 @@ and bits are set according to the default behaviour of 'mkdir'."
|
|||
;; If not, create it.
|
||||
(catch 'system-error
|
||||
(lambda _
|
||||
(mkdirat root head))
|
||||
(if (null? tail)
|
||||
(mkdirat root head bits)
|
||||
(mkdirat root head)))
|
||||
(lambda args
|
||||
;; Someone else created the directory. Unexpected but fine.
|
||||
(unless (= EEXIST (system-error-errno args))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue