diff options
Diffstat (limited to 'sys-apps/acl/files/0001-Make-sure-that-getfacl-R-only-calls-stat-2-on-symlin.patch')
-rw-r--r-- | sys-apps/acl/files/0001-Make-sure-that-getfacl-R-only-calls-stat-2-on-symlin.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/sys-apps/acl/files/0001-Make-sure-that-getfacl-R-only-calls-stat-2-on-symlin.patch b/sys-apps/acl/files/0001-Make-sure-that-getfacl-R-only-calls-stat-2-on-symlin.patch new file mode 100644 index 000000000000..f3925c76003b --- /dev/null +++ b/sys-apps/acl/files/0001-Make-sure-that-getfacl-R-only-calls-stat-2-on-symlin.patch @@ -0,0 +1,47 @@ +http://bugs.gentoo.org/265425 + +From 63451a06b7484d220750ed8574d3ee84e156daf5 Mon Sep 17 00:00:00 2001 +From: Andreas Gruenbacher <agruen@suse.de> +Date: Tue, 23 Jun 2009 00:29:45 +0200 +Subject: [PATCH] Make sure that getfacl -R only calls stat(2) on symlinks when it needs to + +This fixes http://oss.sgi.com/bugzilla/show_bug.cgi?id=790 +"getfacl follows symlinks, even without -L". +--- + getfacl/getfacl.c | 7 ++++--- + +diff --git a/getfacl/getfacl.c b/getfacl/getfacl.c +index fc650e3..b3e6200 100644 +--- a/getfacl/getfacl.c ++++ b/getfacl/getfacl.c +@@ -70,7 +70,7 @@ struct option long_options[] = { + const char *progname; + const char *cmd_line_options; + +-int walk_flags = WALK_TREE_DEREFERENCE; ++int walk_flags = WALK_TREE_DEREFERENCE_TOPLEVEL; + int opt_print_acl; + int opt_print_default_acl; + int opt_strip_leading_slash = 1; +@@ -642,7 +642,7 @@ int main(int argc, char *argv[]) + case 'L': /* follow all symlinks */ + if (posixly_correct) + goto synopsis; +- walk_flags |= WALK_TREE_LOGICAL; ++ walk_flags |= WALK_TREE_LOGICAL | WALK_TREE_DEREFERENCE; + walk_flags &= ~WALK_TREE_PHYSICAL; + break; + +@@ -650,7 +650,8 @@ int main(int argc, char *argv[]) + if (posixly_correct) + goto synopsis; + walk_flags |= WALK_TREE_PHYSICAL; +- walk_flags &= ~WALK_TREE_LOGICAL; ++ walk_flags &= ~(WALK_TREE_LOGICAL | WALK_TREE_DEREFERENCE | ++ WALK_TREE_DEREFERENCE_TOPLEVEL); + break; + + case 's': /* skip files with only base entries */ +-- +1.6.3.3 + |