changeset 9395:73a20c60d1b9

* lib/acl.c (copy_acl): Adjust to IRIX 6.5. Problem reported by Bruno Haible.
author Paul Eggert <eggert@cs.ucla.edu>
date Mon, 22 Oct 2007 14:03:13 -0700
parents b155c0436f27
children bc0d3fa682f1
files ChangeLog lib/acl.c
diffstat 2 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* lib/acl.c (copy_acl): Adjust to IRIX 6.5.  Problem reported
+	by Bruno Haible.
+
 2007-10-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
 	* lib/getloadavg.c
--- a/lib/acl.c
+++ b/lib/acl.c
@@ -84,7 +84,12 @@
 	  int n = acl_entries (acl);
 
 	  acl_free (acl);
-	  if (n == 3)
+	  /* On most hosts an ACL is trivial if n == 3, and it cannot be
+	     less than 3.  On IRIX 6.5 it is also trivial if n == -1.
+	     For simplicity and safety, assume the ACL is trivial if n <= 3.
+	     Also see file_has_acl.c for some of the other possibilities;
+	     it's not clear whether that complexity is needed here.  */
+	  if (n <= 3)
 	    {
 	      if (chmod_or_fchmod (dst_name, dest_desc, mode) != 0)
 		saved_errno = errno;