From 9cdadbb13a1662f1d03d6283d8d1b0afb88f54bb Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Tue, 24 Jan 2006 17:26:24 +0000 Subject: [PATCH] The in_del_hier code needs to use lastname instead of thisname because the latter gets cleaned and (possibly) sanitized. --- flist.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/flist.c b/flist.c index 64b0c23c..c6b1a721 100644 --- a/flist.c +++ b/flist.c @@ -647,13 +647,14 @@ static struct file_struct *receive_file_entry(struct file_list *flist, in_del_hier = recurse; del_hier_name_len = file->dir.depth == 0 ? 0 : l1 + l2; if (relative_paths && del_hier_name_len > 2 - && basename_len == 1+1 && *basename == '.') + && lastname[del_hier_name_len-1] == '.' + && lastname[del_hier_name_len-2] == '/') del_hier_name_len -= 2; file->flags |= FLAG_TOP_DIR | FLAG_DEL_HERE; } else if (in_del_hier) { if (!relative_paths || !del_hier_name_len || (l1 >= del_hier_name_len - && thisname[del_hier_name_len] == '/')) + && lastname[del_hier_name_len] == '/')) file->flags |= FLAG_DEL_HERE; else in_del_hier = 0; -- 2.34.1