From 2217763ff0775fa8093a26acfc1b51b726bb358a Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 8 Jun 2008 05:08:56 +0200 Subject: [PATCH] Don't test the ACL_TYPE_DEFAULT ACL on OSF/1. --- ChangeLog | 6 ++++++ lib/file-has-acl.c | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/ChangeLog b/ChangeLog index e9e48fa5db..9d4305e19e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-06-07 Bruno Haible + + Improve support for Tru64 ACLs. + * lib/file-has-acl.c (file_has_acl): Don't test the ACL_TYPE_DEFAULT + ACL on OSF/1. + 2008-06-07 Bruno Haible Add support for MacOS X ACLs. diff --git a/lib/file-has-acl.c b/lib/file-has-acl.c index f3d8bfdac2..53920a1e0b 100644 --- a/lib/file-has-acl.c +++ b/lib/file-has-acl.c @@ -159,6 +159,16 @@ file_has_acl (char const *name, struct stat const *sb) saved_errno = errno; acl_free (acl); errno = saved_errno; +# if HAVE_ACL_FREE_TEXT /* Tru64 */ + /* On OSF/1, acl_get_file (name, ACL_TYPE_DEFAULT) always + returns NULL with errno not set. There is no point in + making this call. */ +# else /* FreeBSD, IRIX */ + /* On Linux, FreeBSD, IRIX, acl_get_file (name, ACL_TYPE_ACCESS) + and acl_get_file (name, ACL_TYPE_DEFAULT) on a directory + either both succeed or both fail; it depends on the + filesystem. Therefore there is no point in making the second + call if the first one already failed. */ if (ret == 0 && S_ISDIR (sb->st_mode)) { acl = acl_get_file (name, ACL_TYPE_DEFAULT); @@ -170,6 +180,7 @@ file_has_acl (char const *name, struct stat const *sb) else ret = -1; } +# endif } else ret = -1; -- 2.30.2