From: Paul Eggert Date: Mon, 22 Oct 2007 21:03:13 +0000 (-0700) Subject: * lib/acl.c (copy_acl): Adjust to IRIX 6.5. Problem reported X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78950f7af37b8e264119ca2e6a4cece82c921b6d;p=pspp * lib/acl.c (copy_acl): Adjust to IRIX 6.5. Problem reported by Bruno Haible. --- diff --git a/ChangeLog b/ChangeLog index 4801d215c6..479905462d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-10-22 Paul Eggert + + * lib/acl.c (copy_acl): Adjust to IRIX 6.5. Problem reported + by Bruno Haible. + 2007-10-22 Ralf Wildenhues * lib/getloadavg.c diff --git a/lib/acl.c b/lib/acl.c index 0872e45915..c95a57115f 100644 --- a/lib/acl.c +++ b/lib/acl.c @@ -84,7 +84,12 @@ copy_acl (const char *src_name, int source_desc, const char *dst_name, 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;