]> Savannah Git Hosting - gnulib.git/commitdiff
acl-permissions: Fix build on Mac OS X and older AIX (Bug#20681)
authorAndreas Gruenbacher <andreas.gruenbacher@gmail.com>
Fri, 29 May 2015 18:47:45 +0000 (20:47 +0200)
committerAndreas Gruenbacher <andreas.gruenbacher@gmail.com>
Fri, 29 May 2015 19:04:41 +0000 (21:04 +0200)
* lib/set-permissions.c (set_acls): Fix more errors introduced in the acl
module rewrite.

ChangeLog
lib/set-permissions.c

index fb8b44677e4b4b0472ae0828b590ce0c379b174a..a44510a6d17a912fc02019411300356847459d06 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2015-05-29  Andreas Gruenbacher  <andreas.gruenbacher@gmail.com>
 
+       acl-permissions: Fix build on Mac OS X and older AIX (Bug#20681)
+       * lib/set-permissions.c (set_acls): Fix more errors introduced in the acl
+       module rewrite.
+
        acl-permissions: Fix build on Solaris and Cygwin
        Reported by Tom G. Christensen <tgc@jupiterrise.com>:
        * lib/set-permissions.c (set_acls): The count, entries, ace_count, and
index db3696c56023895fb8e07b3bacc4bb35a469e00f..ba291f316f6166a8d346a29a0d620e2173f63c69 100644 (file)
@@ -566,7 +566,7 @@ set_acls (struct permission_context *ctx, const char *name, int desc,
        {
          acl_free (acl);
 
-         acl = acl_init (acl);
+         acl = acl_init (0);
          if (acl)
            {
              if (HAVE_ACL_SET_FD && desc != -1)
@@ -582,12 +582,13 @@ set_acls (struct permission_context *ctx, const char *name, int desc,
   else
     {
       if (HAVE_ACL_SET_FD && desc != -1)
-       ret = acl_set_fd (desc, acl);
+       ret = acl_set_fd (desc, ctx->acl);
       else
-       ret = acl_set_file (name, ACL_TYPE_EXTENDED, acl);
+       ret = acl_set_file (name, ACL_TYPE_EXTENDED, ctx->acl);
       if (ret != 0)
        {
-         if (! acl_errno_valid (saved_errno) && ! acl_extended_nontrivial (acl))
+         if (! acl_errno_valid (errno)
+             && ! acl_extended_nontrivial (ctx->acl))
            ret = 0;
        }
     }
@@ -696,9 +697,9 @@ set_acls (struct permission_context *ctx, const char *name, int desc,
   if (ret == 0 && ctx->have_u)
     {
       if (desc != -1)
-       ret = fchacl (desc, &u.a, u.a.acl_len);
+       ret = fchacl (desc, &ctx->u.a, ctx->u.a.acl_len);
       else
-       ret = chacl (name, &u.a, u.a.acl_len);
+       ret = chacl (name, &ctx->u.a, ctx->u.a.acl_len);
       if (ret < 0)
        {
          if (errno == ENOSYS && from_mode)