Opened 4 years ago
Closed 4 years ago
#16418 closed enhancement (fixed)
rsync-3.2.4
| Reported by: | Bruce Dubbs | Owned by: | Bruce Dubbs |
|---|---|---|---|
| Priority: | normal | Milestone: | 11.2 |
| Component: | BOOK | Version: | git |
| Severity: | medium | Keywords: | |
| Cc: |
Description
New point version.
Change History (3)
comment:1 by , 4 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:2 by , 4 years ago
comment:3 by , 4 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed at commits
118e8ef57e Update to pcre2-10.40. c98a330c2a Update to rsync-3.2.4.
Note:
See TracTickets
for help on using tickets.

NEWS for rsync 3.2.4 (15 Apr 2022)
## Changes in this version:
### BEHAVIOR CHANGES:
--protect-args](rsync.1#opt) (-s) option but in a way that avoids breaking things like rrsync (the restricted rsync script): rsync now uses backslash escaping for sending "shell-active" characters to the remote shell. This includes spaces, so fetching a remote file via a simple quoted filename value now works by default without any extra quoting:```shell rsync -aiv host:'a simple file.pdf' . ``````shell export LC_ALL=C.UTF-8 ```or if iconv translations are needed:```shell if [ "${LC_ALL:-}" ]; then export LANG="$LC_ALL" export LC_CTYPE="$LC_ALL" unset LC_ALL fi export LC_NUMERIC=C.UTF-8 ```### SECURITY FIXES:
### BUG FIXES:
--inplace](rsync.1#opt) + [--sparse](rsync.1#opt) (and a lack of [--whole-file](rsync.1#opt)) where the destination file could get reconstructed with bogus data. Since the bug can also be avoided by using (the seemingly redundant) [--no-W](rsync.1#opt) on the receiving side, the latest rsync will now send--no-Wto a remote receiver when this option combination occurs. If your client rsync is not new enough to do this for you (or if you're just paranoid), you can manually specify `--no-W -M--no-W(when not using [--whole-file`](rsync.1#opt)) to make sure the bug is avoided.--mkpath](rsync.1#opt) if a single-file copy specifies an existing destination dir with a non-existing destination filename.--update -vvto output "is uptodate" instead of "is newer" messages for files that are being skipped due to an identical modify time. (This was a new output quirk in 3.2.3.)--specials](rsync.1#opt)) in an alt-dest hierarchy, rsync now checks the non-permission mode bits to ensure that the 2 special files are really the same before hard-linking them together.--delay-updates](rsync.1#opt) with stale partial data could cause a file to fail to update.--info=NAME](rsync.1#opt) that should only have been output given [--verbose](rsync.1#opt) or [--itemize-changes](rsync.1#opt).--rsh](rsync.1#opt) option that contains aVin the command.--write-devicescopy wrote a file onto a device that was shorter than the device.--write-devicessupport both--checksumand--no-whole-filewhen copying to a device.--stop-at](rsync.1#opt), [--stop-after](rsync.1#opt), and (the deprecated) [--time-limit](rsync.1#opt) options check to see if the allowed time is over, which should make rsync exit more consistently.??:??:??" when the time-remaining value is so large as to be meaningless.Restart=on-failure.### ENHANCEMENTS:
-verify_hostnameoption in the rsync-ssl script.--ignore-existing](rsync.1#opt) when [--info=skip2](rsync.1#opt) is used. The skip message becomes "FILENAME exists (INFO)" where the INFO is one of "type change", "sum change" (requires [--checksum](rsync.1#opt)), "file change" (based on the quick check), "attr change", or "uptodate". Prior versions only supported--info=skip1.--fsync](rsync.1#opt) option (promoted from the patches repo).--copy-devices](rsync.1#opt) option. Compared to the historical version from the rsync-patches repo, this version: properly handles--checksum; fixes a truncation bug when doing an--inplacecopy onto a longer file; fixes several bugs in the--itemizeoutput; and only the sending side needs the enhanced rsync for the copy to work.--atimes](rsync.1#opt) on macOS and fixed a bug where it wouldn't work without [--times](rsync.1#opt).--inplace](rsync.1#opt) update of a file that is being refused due to the Linux fs.protected_regular sysctl setting.--chown](rsync.1#opt), [--usermap](rsync.1#opt), or [--groupmap](rsync.1#opt) is specified, rsync now makes sure that the appropriate [--owner](rsync.1#opt) and/or [--group](rsync.1#opt) options are enabled.--info=NONREG](rsync.1#opt) setting to control if rsync should warn about non-regular files in the transfer. This is enabled by default (keeping the behavior the same as before), so specifying--info=nonreg0can be used to turn the warnings off../configure --enable-roll-asm.--debug=FILTERnow outputs a caution message if a filter rule has trailing whitespace.--copy-links](rsync.1#opt) (-L), [--copy-dirlinks](rsync.1#opt) (-k), & [--keep-dirlinks](rsync.1#opt) (-K) by default to make it harder to exploit any out-of-subdir symlinks.-munge](rrsync.1#opt) tells rrsync to always enable rsync's [--munge-links](rsync.1#opt) option on the server side.-no-lock](rrsync.1#opt) disables a new single-use locking idiom that is the default when [-ro](rrsync.1#opt) is not used (useful with [-munge](rrsync.1#opt)).-no-del](rrsync.1#opt) disables all--remove*and--delete*rsync options on the server side.### PACKAGING RELATED:
--with-rrsyncoption if you wantmake installto install the (now python3) rrsync script and its new manpage.--versionto output. (The file is still auto-generated using the output ofgit describewhen building inside a non-shallow git checkout, though.)--enable-simdoption to--enable-roll-simdand added the option--enable-roll-asmto use the new asm version of the code. Both are x86_64/amd64 only.--enable-asmoption to--enable-md5-asmto avoid confusion with the asm option for the rolling checksum. It is also honored even when openssl crypto is in use. This allows: normal MD4 & MD5, normal MD4 + asm MD5, openssl MD4 & MD5, or openssl MD4 + asm MD5 depending on the configure options selected.-pedantic-errors(when possible) so that we will get warned if a static initialization overflows in the future (among other things).read_buf()function toread_buf_()to avoid a symbol clash on an unpatched zlib.### DEVELOPER RELATED:
checkdiffandcheckdiff2idioms in thetestsuite/*.testfiles.### INTERNAL
!local_serverexceptions throughout the protocol logic.%zdformat string when printing size_t values (when possible).