diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2020-12-07 17:55:23 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2020-12-07 17:55:23 +0000 |
| commit | 0e7b69f1af91ccf288f3e1fd29ea7c65b7f6f986 (patch) | |
| tree | 6ad1fb5b87db3d17ed40c30ac9ea6d980fb3c6b0 /src/libs6rc/s6rc_servicedir_copy_online.c | |
| parent | 79cb9644f99f056641f4c145da6e7ca63b333b80 (diff) | |
| download | s6-rc-0e7b69f1af91ccf288f3e1fd29ea7c65b7f6f986.tar.gz | |
Prepare for 0.5.2.1; build against new skalibs/execline/s6
Diffstat (limited to 'src/libs6rc/s6rc_servicedir_copy_online.c')
| -rw-r--r-- | src/libs6rc/s6rc_servicedir_copy_online.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libs6rc/s6rc_servicedir_copy_online.c b/src/libs6rc/s6rc_servicedir_copy_online.c index e676d5a..5e84079 100644 --- a/src/libs6rc/s6rc_servicedir_copy_online.c +++ b/src/libs6rc/s6rc_servicedir_copy_online.c @@ -5,7 +5,9 @@ #include <errno.h> #include <unistd.h> #include <stdio.h> + #include <skalibs/djbunix.h> + #include <s6-rc/s6rc-utils.h> #include "s6rc-servicedir-internal.h" #include <s6-rc/s6rc-servicedir.h> @@ -27,7 +29,12 @@ int s6rc_servicedir_copy_online (char const *src, char const *dst) memcpy(oldfn, dst, dstlen) ; memcpy(oldfn + dstlen, "/old", 5) ; if (rm_rf(oldfn) < 0 && errno != ENOENT) return 0 ; - if (mkdir(oldfn, 0755) < 0) return 0 ; + { + mode_t m = umask(0) ; + int r = mkdir(oldfn, 0755) ; + umask(m) ; + if (r < 0) return 0 ; + } dstfn[dstlen] = '/' ; oldfn[dstlen + 4] = '/' ; wantup = s6rc_servicedir_block(dst) ; |
