26 lines
940 B
Diff
26 lines
940 B
Diff
From 71c2b5d0e386b845fb2f4d427568451f098008ff Mon Sep 17 00:00:00 2001
|
|
From: Wayne Davison <wayne@opencoder.net>
|
|
Date: Wed, 14 Sep 2022 07:14:13 -0700
|
|
Subject: [PATCH] Fix exclusion of /. with --relative.
|
|
|
|
---
|
|
flist.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/flist.c b/flist.c
|
|
index 0b259cca..82d686a6 100644
|
|
--- a/flist.c
|
|
+++ b/flist.c
|
|
@@ -988,7 +988,7 @@ static struct file_struct *recv_file_entry(int f, struct file_list *flist, int x
|
|
exit_cleanup(RERR_UNSUPPORTED);
|
|
}
|
|
|
|
- if (*thisname != '.' || thisname[1] != '\0') {
|
|
+ if (*thisname == '/' ? thisname[1] != '.' || thisname[2] != '\0' : *thisname != '.' || thisname[1] != '\0') {
|
|
int filt_flags = S_ISDIR(mode) ? NAME_IS_DIR : NAME_IS_FILE;
|
|
if (!trust_sender_filter /* a per-dir filter rule means we must trust the sender's filtering */
|
|
&& filter_list.head && check_server_filter(&filter_list, FINFO, thisname, filt_flags) < 0) {
|
|
--
|
|
2.18.2
|
|
|