# HG changeset patch # User Bruno Haible # Date 1315260084 -7200 # Node ID 5d1d1c0b820450a17291479651f4f94b41bcfe48 # Parent cd0bdf15a52424fd16a24c01a9ffcc23e345af27 acl: Fix a bug with NFSv4 ACLs on Solaris 10 (newer version). * lib/file-has-acl.c (file_has_acl): ACLs with 4..6 ACEs can be trivial. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2011-09-05 Bruno Haible + + acl: Fix a bug with NFSv4 ACLs on Solaris 10 (newer version) in + binaries built on the original Solaris 10. + * lib/file-has-acl.c (file_has_acl): ACLs with 4..6 ACEs can be + trivial. + 2011-09-05 Bruno Haible acl: Improve support of NFSv4 ACLs on Solaris 10 (newer version). diff --git a/lib/file-has-acl.c b/lib/file-has-acl.c --- a/lib/file-has-acl.c +++ b/lib/file-has-acl.c @@ -612,9 +612,15 @@ if (count == 0) break; - /* If there are more than 3 entries, there cannot be only the - ACE_OWNER, ACE_GROUP, ACE_OTHER entries. */ - if (count > 3) + /* In the old (original Solaris 10) convention: + If there are more than 3 entries, there cannot be only the + ACE_OWNER, ACE_GROUP, ACE_OTHER entries. + In the newer Solaris 10 and Solaris 11 convention: + If there are more than 6 entries, there cannot be only the + ACE_OWNER, ACE_GROUP, ACE_EVERYONE entries, each once with + NEW_ACE_ACCESS_ALLOWED_ACE_TYPE and once with + NEW_ACE_ACCESS_DENIED_ACE_TYPE. */ + if (count > 6) return 1; entries = (ace_t *) malloc (count * sizeof (ace_t));