Blob Blame Raw
--- rsync-2.6.9/flist.c	2007-02-18 19:25:08.000000000 -0500
+++ rsync-2.6.9.fix/flist.c	2007-02-18 19:24:38.000000000 -0500
@@ -998,7 +998,7 @@
 		file->mode = tweak_mode(file->mode, chmod_modes);
 
 #ifdef SUPPORT_ACLS
-	if (preserve_acls) {
+	if (preserve_acls && f >= 0) {
 		sx.st.st_mode = file->mode;
 		sx.acc_acl = sx.def_acl = NULL;
 		if (get_acl(fname, &sx) < 0)
@@ -1006,7 +1006,7 @@
 	}
 #endif
 #ifdef SUPPORT_XATTRS
-	if (preserve_xattrs) {
+	if (preserve_xattrs && f >= 0) {
 		sx.xattr = NULL;
 		if (get_xattr(fname, &sx) < 0)
 			return NULL;
@@ -1021,20 +1021,20 @@
 		flist->files[flist->count++] = file;
 		send_file_entry(file, f);
 #ifdef SUPPORT_ACLS
-		if (preserve_acls)
+		if (preserve_acls && f >= 0)
 			send_acl(&sx, f);
 #endif
 #ifdef SUPPORT_XATTRS
-		if (preserve_xattrs)
+		if (preserve_xattrs && f >= 0)
 			send_xattr(&sx, f);
 #endif
 	} else {
 #ifdef SUPPORT_ACLS
-		if (preserve_acls)
+		if (preserve_acls && f >= 0)
 			free_acl(&sx);
 #endif
 #ifdef SUPPORT_XATTRS
-		if (preserve_xattrs)
+		if (preserve_xattrs && f >= 0)
 			free_xattr(&sx);
 #endif
 	}