From: Wayne Davison Date: Sat, 31 May 2008 21:51:38 +0000 (-0700) Subject: Fixed the destination path check so that it cannot exclude a X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/164cb66addee693700c70fed63d996872fcc3edb Fixed the destination path check so that it cannot exclude a dot dir. --- diff --git a/main.c b/main.c index 5fba5e68..6881c8e6 100644 --- a/main.c +++ b/main.c @@ -509,12 +509,13 @@ static char *get_local_name(struct file_list *flist, char *dest_path) if (daemon_filter_list.head) { char *slash = strrchr(dest_path, '/'); - if (slash && slash[1] == '\0') + if (slash && (slash[1] == '\0' || (slash[1] == '.' && slash[2] == '\0'))) *slash = '\0'; else slash = NULL; - if (check_filter(&daemon_filter_list, FLOG, dest_path, 0) < 0 - || check_filter(&daemon_filter_list, FLOG, dest_path, 1) < 0) { + if ((*dest_path != '.' || dest_path[1] != '\0') + && (check_filter(&daemon_filter_list, FLOG, dest_path, 0) < 0 + || check_filter(&daemon_filter_list, FLOG, dest_path, 1) < 0)) { rprintf(FERROR, "skipping daemon-excluded destination \"%s\"\n", dest_path); exit_cleanup(RERR_FILESELECT);