diff --git a/coreutils-acl-nofollow.patch b/coreutils-acl-nofollow.patch new file mode 100644 index 0000000..ac5067e --- /dev/null +++ b/coreutils-acl-nofollow.patch @@ -0,0 +1,84 @@ +commit 95f7c57ff4090a5dee062044d2c7b99879077808 +Author: Kamil Dudka +Date: Fri Jul 22 14:48:42 2011 +0200 + + file-has-acl: use acl_extended_file_nofollow if available + + * lib/acl-internal.h (HAVE_ACL_EXTENDED_FILE): New macro. + (acl_extended_file): New macro. + * lib/file-has-acl.c (file_has_acl): Use acl_extended_file_nofollow. + * m4/acl.m4 (gl_FUNC_ACL): Check for acl_extended_file_nofollow. + This addresses http://bugzilla.redhat.com/692823. + +Index: coreutils-8.12/lib/acl-internal.h +=================================================================== +--- coreutils-8.12.orig/lib/acl-internal.h ++++ coreutils-8.12/lib/acl-internal.h +@@ -124,6 +124,12 @@ rpl_acl_set_fd (int fd, acl_t acl) + # endif + + /* Linux-specific */ ++# ifndef HAVE_ACL_EXTENDED_FILE_NOFOLLOW ++# define HAVE_ACL_EXTENDED_FILE_NOFOLLOW false ++# define acl_extended_file_nofollow(name) (-1) ++# endif ++ ++/* Linux-specific */ + # ifndef HAVE_ACL_FROM_MODE + # define HAVE_ACL_FROM_MODE false + # define acl_from_mode(mode) (NULL) +Index: coreutils-8.12/lib/file-has-acl.c +=================================================================== +--- coreutils-8.12.orig/lib/file-has-acl.c ++++ coreutils-8.12/lib/file-has-acl.c +@@ -339,12 +339,20 @@ file_has_acl (char const *name, struct s + /* Linux, FreeBSD, MacOS X, IRIX, Tru64 */ + int ret; + +- if (HAVE_ACL_EXTENDED_FILE) /* Linux */ ++ if (HAVE_ACL_EXTENDED_FILE || HAVE_ACL_EXTENDED_FILE_NOFOLLOW) /* Linux */ + { ++# if HAVE_ACL_EXTENDED_FILE_NOFOLLOW ++ /* acl_extended_file_nofollow() uses lgetxattr() in order to prevent ++ unnecessary mounts, but it returns the same result as we already ++ know that NAME is not a symbolic link at this point (modulo the ++ TOCTTOU race condition). */ ++ ret = acl_extended_file_nofollow (name); ++# else + /* On Linux, acl_extended_file is an optimized function: It only + makes two calls to getxattr(), one for ACL_TYPE_ACCESS, one for + ACL_TYPE_DEFAULT. */ + ret = acl_extended_file (name); ++# endif + } + else /* FreeBSD, MacOS X, IRIX, Tru64 */ + { +Index: coreutils-8.12/m4/acl.m4 +=================================================================== +--- coreutils-8.12.orig/m4/acl.m4 ++++ coreutils-8.12/m4/acl.m4 +@@ -33,7 +33,7 @@ AC_DEFUN([gl_FUNC_ACL], + AC_CHECK_FUNCS( + [acl_get_file acl_get_fd acl_set_file acl_set_fd \ + acl_free acl_from_mode acl_from_text \ +- acl_delete_def_file acl_extended_file \ ++ acl_delete_def_file acl_extended_file acl_extended_file_nofollow \ + acl_delete_fd_np acl_delete_file_np \ + acl_copy_ext_native acl_create_entry_np \ + acl_to_short_text acl_free_text]) +Index: coreutils-8.12/ChangeLog +=================================================================== +--- coreutils-8.12.orig/ChangeLog ++++ coreutils-8.12/ChangeLog +@@ -1,3 +1,11 @@ ++2011-07-22 Kamil Dudka ++ ++ file-has-acl: use acl_extended_file_nofollow if available ++ * lib/acl-internal.h (HAVE_ACL_EXTENDED_FILE): New macro. ++ (acl_extended_file): New macro. ++ * lib/file-has-acl.c (file_has_acl): Use acl_extended_file_nofollow. ++ * m4/acl.m4 (gl_FUNC_ACL): Check for acl_extended_file_nofollow. ++ + 2011-04-26 Jim Meyering + + version 8.12 diff --git a/coreutils.changes b/coreutils.changes index fb30195..4b9cabf 100644 --- a/coreutils.changes +++ b/coreutils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Aug 2 00:26:05 UTC 2011 - lchiquitto@suse.com + +- file-has-acl: use acl_extended_file_nofollow if available to + avoid triggering unwanted AutoFS mounts (bnc#701659). + ------------------------------------------------------------------- Tue May 3 16:42:41 CEST 2011 - pth@suse.de diff --git a/coreutils.spec b/coreutils.spec index 886aad1..74449dc 100644 --- a/coreutils.spec +++ b/coreutils.spec @@ -56,6 +56,7 @@ Patch30: coreutils-8.6-compile-su-with-fpie.diff Patch31: coreutils-getaddrinfo.patch Patch32: coreutils-ptr_int_casts.patch Patch33: coreutils-8.9-singlethreaded-sort.patch +Patch34: coreutils-acl-nofollow.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build # this will create a cycle, broken up randomly - coreutils is just too core to have other # prerequires @@ -96,6 +97,7 @@ uname unexpand uniq unlink uptime users vdir wc who whoami yes %patch31 %patch32 %patch33 +%patch34 -p1 xz -dc %{S:4} >po/de.po