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 <wa...@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 <wa...@opencoder.net> Date: Tue Aug 9 17:33:45 2022 -0700 Be a little paranoid. commit 97f40754babb503140e1516b759c501ea8fb22b4 Author: Wayne Davison <wa...@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. _______________________________________________ rsync-cvs mailing list rsync-cvs@lists.samba.org https://lists.samba.org/mailman/listinfo/rsync-cvs