mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-05-01 03:26:02 -04:00
Have receiver strip bogus leading slashes on filenames.
If the receiver is running without --relative, it shouldn't be receiving any filenames with a leading slash. To ensure that the sender doesn't try to pull a fast one on us, we now make flist_sort_and_clean() strip a leading slash even if --relative isn't specified.
This commit is contained in:
6
flist.c
6
flist.c
@@ -2553,7 +2553,11 @@ struct file_list *recv_file_list(int f)
|
||||
rprintf(FINFO, "[%s] flist_eof=1\n", who_am_i());
|
||||
}
|
||||
|
||||
flist_sort_and_clean(flist, relative_paths);
|
||||
/* The --relative option sends paths with a leading slash, so we need
|
||||
* to specify the strip_root option here. We also want to ensure that
|
||||
* a non-relative transfer doesn't have any leading slashes or it might
|
||||
* cause the client a security issue. */
|
||||
flist_sort_and_clean(flist, 1);
|
||||
|
||||
if (protocol_version < 30) {
|
||||
/* Recv the io_error flag */
|
||||
|
||||
Reference in New Issue
Block a user