summaryrefslogtreecommitdiff
path: root/lib/file-has-acl.c
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2011-06-13 01:17:20 +0200
committerBruno Haible <bruno@clisp.org>2011-06-13 01:17:20 +0200
commit9cbf59b7fd224f263fce77ef1dadd3be5439fc4f (patch)
tree0890ff4f36e22096b9120815b775c4d1b895a10a /lib/file-has-acl.c
parent13bba66f5fbbaf0dc453994a36747732ae786e02 (diff)
downloadgnulib-9cbf59b7fd224f263fce77ef1dadd3be5439fc4f.tar.gz
acl: Complete the 2010-08-10 fix.
* lib/file-has-acl.c (file_has_acl) [HP-UX]: Also test against ENOTSUP. * lib/set-mode-acl.c (qset_acl) [HP-UX]: Likewise. * lib/copy-acl.c (qcopy_acl) [HP-UX]: Test for the errno values explicitly. * tests/test-sameacls.c (main) [HP-UX]: Also test against ENOTSUP. Reported in <http://debbugs.gnu.org/db/60/6053.html>.
Diffstat (limited to 'lib/file-has-acl.c')
-rw-r--r--lib/file-has-acl.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/file-has-acl.c b/lib/file-has-acl.c
index a815e4c47d..03decf46ba 100644
--- a/lib/file-has-acl.c
+++ b/lib/file-has-acl.c
@@ -527,7 +527,15 @@ file_has_acl (char const *name, struct stat const *sb)
count = getacl (name, 0, NULL);
if (count < 0)
- return (errno == ENOSYS || errno == EOPNOTSUPP ? 0 : -1);
+ {
+ /* ENOSYS is seen on newer HP-UX versions.
+ EOPNOTSUPP is typically seen on NFS mounts.
+ ENOTSUP was seen on Quantum StorNext file systems (cvfs). */
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
+ return 0;
+ else
+ return -1;
+ }
if (count == 0)
return 0;