From: Wayne Davison Date: Sat, 4 Feb 2006 22:28:54 +0000 (+0000) Subject: Another fix to the directory-default-ACLs code in generator.c. X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/commitdiff_plain/04ea84fbf18c8efe3d3af67b8165cc672c4f11b5 Another fix to the directory-default-ACLs code in generator.c. --- diff --git a/acls.diff b/acls.diff index d851f32..6dad285 100644 --- a/acls.diff +++ b/acls.diff @@ -1264,7 +1264,7 @@ ACLs to a non-ACL-supporting disk should complain. free(file); if (verbose > 1) { ---- orig/configure.in 2006-02-02 02:41:09 +--- orig/configure.in 2006-02-04 22:04:06 +++ configure.in 2004-08-19 19:53:27 @@ -478,6 +478,11 @@ if test x"$ac_cv_func_strcasecmp" = x"no AC_CHECK_LIB(resolv, strcasecmp) @@ -1278,7 +1278,7 @@ ACLs to a non-ACL-supporting disk should complain. dnl At the moment we don't test for a broken memcmp(), because all we dnl need to do is test for equality, not comparison, and it seems that dnl every platform has a memcmp that can do at least that. -@@ -751,6 +756,77 @@ AC_SUBST(OBJ_RESTORE) +@@ -734,6 +739,77 @@ AC_SUBST(OBJ_RESTORE) AC_SUBST(CC_SHOBJ_FLAG) AC_SUBST(BUILD_POPT) @@ -1397,7 +1397,7 @@ ACLs to a non-ACL-supporting disk should complain. recv_uid_list(f, flist); --- orig/generator.c 2006-01-31 18:59:39 -+++ generator.c 2006-02-04 20:12:42 ++++ generator.c 2006-02-04 22:26:45 @@ -756,6 +756,7 @@ static int try_dests_non(struct file_str } @@ -1436,7 +1436,7 @@ ACLs to a non-ACL-supporting disk should complain. - if (fuzzy_basis && S_ISREG(file->mode)) { + if ((fuzzy_basis && S_ISREG(file->mode)) +#ifdef SUPPORT_ACLS -+ || (!preserve_perms && !S_ISDIR(file->mode)) ++ || !preserve_perms +#endif + ) { char *dn = file->dirname ? file->dirname : "."; @@ -4903,9 +4903,9 @@ ACLs to a non-ACL-supporting disk should complain. } /* We now check to see if we are writing file "inplace" */ ---- orig/rsync.c 2006-02-04 19:52:05 +--- orig/rsync.c 2006-02-04 22:04:06 +++ rsync.c 2006-02-04 19:53:13 -@@ -54,7 +54,8 @@ void free_sums(struct sum_struct *s) +@@ -88,7 +88,8 @@ void free_sums(struct sum_struct *s) /* This is only called when we aren't preserving permissions. Figure out what * the permissions should be and return them merged back into the mode. */ @@ -4915,7 +4915,7 @@ ACLs to a non-ACL-supporting disk should complain. { /* If the file already exists, we'll return the local permissions, * possibly tweaked by the --executability option. */ -@@ -69,7 +70,7 @@ mode_t dest_mode(mode_t flist_mode, mode +@@ -103,7 +104,7 @@ mode_t dest_mode(mode_t flist_mode, mode dest_mode |= (dest_mode & 0444) >> 2; } } else @@ -4924,7 +4924,7 @@ ACLs to a non-ACL-supporting disk should complain. return (flist_mode & ~CHMOD_BITS) | (dest_mode & CHMOD_BITS); } -@@ -168,6 +169,14 @@ int set_file_attrs(char *fname, struct f +@@ -202,6 +203,14 @@ int set_file_attrs(char *fname, struct f } #endif