[SCM] The rsync repository. - branch master updated

Rsync CVS commit messages rsync-cvs at lists.samba.org
Wed Aug 10 00:55:25 UTC 2022


The branch, master has been updated
       via  4c0a4067 Fix handling of a character class with an escaped closing bracket.
       via  85501428 Be a little paranoid.
       via  97f40754 A couple manpage tweaks.
      from  cff8f044 Add `--trust-sender` option.

https://git.samba.org/?p=rsync.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 4c0a4067df2516ce50e12a7d3ae572275fa9fc0b
Author: Wayne Davison <wayne at opencoder.net>
Date:   Tue Aug 9 17:51:00 2022 -0700

    Fix handling of a character class with an escaped closing bracket.

commit 8550142804430afcf46f84fcd0c6dfe0a9db1d76
Author: Wayne Davison <wayne at opencoder.net>
Date:   Tue Aug 9 17:33:45 2022 -0700

    Be a little paranoid.

commit 97f40754babb503140e1516b759c501ea8fb22b4
Author: Wayne Davison <wayne at opencoder.net>
Date:   Tue Aug 9 17:26:23 2022 -0700

    A couple manpage tweaks.

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

Summary of changes:
 exclude.c  | 12 ++++++++----
 rsync.1.md | 11 +++++------
 2 files changed, 13 insertions(+), 10 deletions(-)


Changeset truncated at 500 lines:

diff --git a/exclude.c b/exclude.c
index da25661b..e5774420 100644
--- a/exclude.c
+++ b/exclude.c
@@ -364,6 +364,7 @@ void free_implied_include_partial_string()
 		free(partial_string_buf);
 		partial_string_buf = NULL;
 	}
+	partial_string_len = 0; /* paranoia */
 }
 
 /* Each arg the client sends to the remote sender turns into an implied include
@@ -379,8 +380,10 @@ void add_implied_include(const char *arg, int skip_daemon_module)
 		return;
 	if (partial_string_len) {
 		arg_len = strlen(arg);
-		if (partial_string_len + arg_len >= MAXPATHLEN)
+		if (partial_string_len + arg_len >= MAXPATHLEN) {
+			partial_string_len = 0;
 			return; /* Should be impossible... */
+		}
 		memcpy(partial_string_buf + partial_string_len, arg, arg_len + 1);
 		partial_string_len = 0;
 		arg = partial_string_buf;
@@ -421,9 +424,10 @@ void add_implied_include(const char *arg, int skip_daemon_module)
 		for (cp = arg; *cp; ) {
 			switch (*cp) {
 			  case '\\':
-				if (cp[1] == ']')
-					cp++; /* A \] in a filter might cause a problem w/o wildcards. */
-				else if (!strchr("*[?", cp[1])) {
+				if (cp[1] == ']') {
+					if (!saw_wild)
+						cp++; /* A \] in a non-wild filter causes a problem, so drop the \ . */
+				} else if (!strchr("*[?", cp[1])) {
 					backslash_cnt++;
 					if (saw_wild)
 						*p++ = '\\';
diff --git a/rsync.1.md b/rsync.1.md
index 72675594..627c4290 100644
--- a/rsync.1.md
+++ b/rsync.1.md
@@ -2439,10 +2439,9 @@ expand it.
       contents will have been verified when it was created.
 
     This option may help an under-powered client server if the extra pattern
-    matching is slowing things down on a huge transfer.  It can also be used
-    to work around a bug in the verification logic, possibly after using the
-    [`--list-only`](#opt) option combined with [`--trust-sender`](#opt) to look
-    over the full file list.
+    matching is slowing things down on a huge transfer.  It can also be used to
+    work around a currently-unknown bug in the verification logic, possibly
+    after using the [`--list-only`](#opt) option to approve the file list.
 
 0.  `--copy-as=USER[:GROUP]`
 
@@ -4047,8 +4046,8 @@ Here are some examples of exclude/include matching:
 - Option `-f'- foo/*/bar'` would exclude any file/dir named bar which is at two
   levels below a directory named foo (if foo is in the transfer)
 - Option `-f'- /foo/**/bar'` would exclude any file/dir named bar that was two
-  or more levels below the top-level directory named foo (exclude /foo/bar in a
-  separate rule, if desired)
+  or more levels below a top-level directory named foo (note that /foo/bar is
+  **not** excluded by this)
 - Options `-f'+ */' -f'+ *.c' -f'- *'` would include all directories and .c
   source files but nothing else
 - Options `-f'+ foo/' -f'+ foo/bar.c' -f'- *'` would include only the foo


-- 
The rsync repository.



More information about the rsync-cvs mailing list