[SCM] The rsync repository. - branch master updated

Rsync CVS commit messages rsync-cvs at lists.samba.org
Mon May 26 15:09:41 MDT 2014


The branch, master has been updated
       via  f491d17 Mention all the latest changes in the NEWS.
       via  288e64a Avoid an xattr-finding glitch on the receiver. Fixes bug 9594.
       via  0872dff Add new-compress option to rrsync.
      from  3ce7a65 Make --omit-dir-times avoid early-create directories.

;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit f491d173527fa6e0897357fd42331f66b8b2301f
Author: Wayne Davison <wayned at samba.org>
Date:   Mon May 26 14:08:20 2014 -0700

    Mention all the latest changes in the NEWS.

commit 288e64a79fae9663eb847026d5e2ac252f2020bd
Author: Wayne Davison <wayned at samba.org>
Date:   Mon May 26 14:04:49 2014 -0700

    Avoid an xattr-finding glitch on the receiver.
    Fixes bug 9594.

commit 0872dff60c34c9210daf33fa10cb69a8a934562c
Author: Wayne Davison <wayned at samba.org>
Date:   Mon May 26 12:13:01 2014 -0700

    Add new-compress option to rrsync.

-----------------------------------------------------------------------

Summary of changes:
 NEWS           |   39 +++++++++++++++++++++++++++++++++++++--
 support/rrsync |    1 +
 xattrs.c       |    7 ++++---
 3 files changed, 42 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/NEWS b/NEWS
index 9407d3c..9e50fe0 100644
--- a/NEWS
+++ b/NEWS
@@ -4,12 +4,20 @@ Changes since 3.1.0:
 
   BUG FIXES:
 
+    - If the receiver gets bogus filenames from the sender (an unexpected
+      leading slash or a ".." infix dir), exit with an error.  This prevents a
+      malicious sender from trying to inject filenames that would affect an
+      area outside the destination directories.
+
     - Fixed a failure to remove the partial-transfer temp file when interrupted
       (and rsync is not saving the partial files).
 
     - Changed the chown/group/xattr-set order to avoid losing some security-
       related xattr info (that would get cleared by a chown).
 
+    - Fixed a bug in the xattr-finding code that could make a non-root-run
+      receiver not able to find some xattr numbers.
+
     - Fixed a bug in the early daemon protocol where a timeout failed to be
       honored (e.g. if the remote side fails to send us the initial protocol
       greeting).
@@ -26,11 +34,15 @@ Changes since 3.1.0:
     - Fixed an incorrect message about backup-directory-creation when using
       --dry-run and the backup dir is not an absolute path.
 
-    - Fixed a bug where a failed deletion might not affect the exit code.
+    - Fixed a bug where a failed deletion and/or a failed sender-side removal
+      would not affect the exit code.
 
     - Fixed a bug that caused a failure when combining --delete-missing-args
       with --xattrs and/or --acls.
 
+    - Fixed a strange dir_depth assertion error that was caused by empty-dir
+      removals and/or duplicate files in the transfer.
+
     - Fixed a problem with --info=progress2's output stats where rsync would
       only update the stats at the end of each file's transfer.  It now uses
       the data that is flowing for the current file, making the stats more
@@ -51,6 +63,12 @@ Changes since 3.1.0:
 
     - Fixed a problem reading more than 16 ACLs on some OSes.
 
+    - Fixed the reading of the secrets file to avoid an infinite wait when
+      the username is missing.
+
+    - Fixed a parsing problem in the --usermap/--groupmap options when using
+      MIN-MAX numbers.
+
     - Switched Cygwin back to using socketpair "pipes" to try to speed it up.
 
     - Added knowledge of a few new options to rrsync.
@@ -58,13 +76,30 @@ Changes since 3.1.0:
   ENHANCEMENTS:
 
     - Tweaked the temp-file naming when --temp-dir=DIR is used: the temp-file
-      names with not get an extra leading '.' prepended.
+      names will not get a '.' prepended.
+
+    - Added support for a new-compression idiom that does not compress all the
+      matching data in a transfer.  This can help rsync to use less cpu when a
+      transfer has a lot of matching data, and also makes rsync compatible with
+      a non-bundled zlib.  See the --new-compress and --old-compress options in
+      the manpage.
 
     - Added the support/rsync-no-vanished wrapper script.
 
     - Made configure more prominently mention when we failed to find yodl (in
       case the user wants to be able to generate manpages from *.yo files).
 
+    - Have manpage mention how a daemon's max-verbosity setting affects info
+      and debug options.  Also added more clarification on backslash removals
+      for excludes that contain wildcards.
+
+    - Have configure check if for the attr lib (for getxattr) for those systems
+      that need to link against it explicitly.
+
+    - Change the early dir-creation logic to only use that idiom in an
+      inc-recursive copy that is preserving directory times. e.g. using
+      --omit-dir-times will avoid these early directories being created.
+
   DEVELOPER RELATED:
 
     - We now include an example systemd file (in packaging/systemd).
diff --git a/support/rrsync b/support/rrsync
index 5886033..e95f992 100644
--- a/support/rrsync
+++ b/support/rrsync
@@ -97,6 +97,7 @@ our %long_opt = (
   'max-size' => 1,
   'min-size' => 1,
   'modify-window' => 1,
+  'new-compress' => 0,
   'no-implied-dirs' => 0,
   'no-r' => 0,
   'no-relative' => 0,
diff --git a/xattrs.c b/xattrs.c
index 01160a6..57d40e1 100644
--- a/xattrs.c
+++ b/xattrs.c
@@ -611,9 +611,10 @@ int recv_xattr_request(struct file_struct *file, int f_in)
 	num = 0;
 	while ((rel_pos = read_varint(f_in)) != 0) {
 		num += rel_pos;
-		while (cnt && rxa->num < num) {
-		    rxa++;
-		    cnt--;
+		/* Note that the sender-related num values may not be in order on the receiver! */
+		while (cnt && (am_sender ? rxa->num < num : rxa->num != num)) {
+			rxa++;
+			cnt--;
 		}
 		if (!cnt || rxa->num != num) {
 			rprintf(FERROR, "[%s] could not find xattr #%d for %s\n",


-- 
The rsync repository.


More information about the rsync-cvs mailing list