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_offline.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_offline.c')
| -rw-r--r-- | src/libs6rc/s6rc_servicedir_copy_offline.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/libs6rc/s6rc_servicedir_copy_offline.c b/src/libs6rc/s6rc_servicedir_copy_offline.c index 6581a4f..b517536 100644 --- a/src/libs6rc/s6rc_servicedir_copy_offline.c +++ b/src/libs6rc/s6rc_servicedir_copy_offline.c @@ -2,16 +2,17 @@ #include <sys/stat.h> #include <errno.h> + #include "s6rc-servicedir-internal.h" #include <s6-rc/s6rc-servicedir.h> int s6rc_servicedir_copy_offline (char const *src, char const *dst) { s6rc_servicedir_desc_t const *p = s6rc_servicedir_file_list ; - if (mkdir(dst, 0755) < 0) - { - if (errno != EEXIST) return 0 ; - } + mode_t m = umask(0) ; + int r = mkdir(dst, 0755) ; + umask(m) ; + if (r < 0 && errno != EEXIST) return 0 ; for (; p->name ; p++) if (!s6rc_servicedir_copy_one(src, dst, p)) return 0 ; return 1 ; |
