From 8c5403834dfe57edcbc762cf7faee1b2643c5c31 Mon Sep 17 00:00:00 2001 From: Andreas Gruenbacher Date: Wed, 25 May 2011 18:18:53 +0200 Subject: [PATCH] walk_tree: do not follow symlink to directory with -h Keep libmisc/walk_tree.c in sync with the version in the attr package; no change in functionality for getfacl or setfacl. Remove a related dead line of code from setfacl. Upstream-commit: 3d80b8fa04cdc7fc89c49abff738bdbedb8ba758 Signed-off-by: Kamil Dudka --- libmisc/walk_tree.c | 3 ++- setfacl/setfacl.c | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libmisc/walk_tree.c b/libmisc/walk_tree.c index 30ff92a..2be9d47 100644 --- a/libmisc/walk_tree.c +++ b/libmisc/walk_tree.c @@ -60,7 +60,8 @@ static int walk_tree_rec(const char *path, int walk_flags, void *), void *arg, int depth) { int follow_symlinks = (walk_flags & WALK_TREE_LOGICAL) || - (!(walk_flags & WALK_TREE_PHYSICAL) && + ((walk_flags & WALK_TREE_DEREFERENCE) && + !(walk_flags & WALK_TREE_PHYSICAL) && depth == 0); int have_dir_stat = 0, flags = walk_flags, err; struct entry_handle dir; diff --git a/setfacl/setfacl.c b/setfacl/setfacl.c index 4f4ff27..81062a6 100644 --- a/setfacl/setfacl.c +++ b/setfacl/setfacl.c @@ -595,7 +595,6 @@ int main(int argc, char *argv[]) break; case 'P': /* do not follow symlinks */ - walk_flags |= WALK_TREE_PHYSICAL; walk_flags |= WALK_TREE_PHYSICAL; walk_flags &= ~(WALK_TREE_LOGICAL | WALK_TREE_DEREFERENCE | WALK_TREE_DEREFERENCE_TOPLEVEL); -- 2.20.1