X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/8458724d2558659cfb5e53443759cac5419b13bf..972a3619c4ea253671e2fe0897f99af897782e26:/receiver.c diff --git a/receiver.c b/receiver.c index d941fa2b..5882e605 100644 --- a/receiver.c +++ b/receiver.c @@ -412,14 +412,15 @@ int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen) setuid/setgid bits to ensure that there is no race condition. They are then correctly updated after the lchown. Thanks to snabb@epipe.fi for pointing - this out */ + this out. We also set it initially without group + access because of a similar race condition. */ fd2 = do_open(fnametmp,O_WRONLY|O_CREAT|O_EXCL, - file->mode & INITPERMMASK); + file->mode & INITACCESSPERMS); if (fd2 == -1 && relative_paths && errno == ENOENT && create_directory_path(fnametmp) == 0) { fd2 = do_open(fnametmp,O_WRONLY|O_CREAT|O_EXCL, - file->mode & INITPERMMASK); + file->mode & INITACCESSPERMS); } if (fd2 == -1) { rprintf(FERROR,"cannot create %s : %s\n",fnametmp,strerror(errno));