X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/58a79f4b44593996e53a9bfc94b56006ea86c2ec..9a54a640f74dcaeb03ef99799a5320b3eb77f7ec:/util.c diff --git a/util.c b/util.c index c0580508..2c4c571e 100644 --- a/util.c +++ b/util.c @@ -32,7 +32,6 @@ extern int relative_paths; extern int preserve_xattrs; extern char *module_dir; extern unsigned int module_dirlen; -extern mode_t orig_umask; extern char *partial_dir; extern filter_rule_list daemon_filter_list; @@ -178,18 +177,11 @@ int set_modtime(const char *fname, time_t modtime, uint32 mod_nsec, mode_t mode) } } -/* This creates a new directory with default permissions. Since there - * might be some directory-default permissions affecting this, we can't - * force the permissions directly using the original umask and mkdir(). */ +/* This creates a new directory with default permissions. Now that we + * leave the original umask set, we can just mkdir with mode 777. */ int mkdir_defmode(char *fname) { - int ret; - - umask(orig_umask); - ret = do_mkdir(fname, ACCESSPERMS); - umask(0); - - return ret; + return do_mkdir(fname, ACCESSPERMS); } /* Create any necessary directories in fname. Any missing directories are @@ -216,8 +208,6 @@ int make_path(char *fname, int flags) } else end = fname + strlen(fname); - umask(orig_umask); /* NOTE: don't return before setting this back to 0! */ - /* Try to find an existing dir, starting from the deepest dir. */ for (p = end; ; ) { if (do_mkdir(fname, ACCESSPERMS) == 0) { @@ -258,8 +248,6 @@ int make_path(char *fname, int flags) ret++; } - umask(0); - if (flags & MKP_DROP_NAME) *end = '/';