acl: Don't use GETACLCNT and similar ops, since they are unreliable.
[gnulib.git] / ChangeLog
index 4fb6431..0af5d80 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,104 @@
+2012-02-19  Paul Eggert  <eggert@cs.ucla.edu>
+           Bruno Haible  <bruno@clisp.org>
+
+       acl: Don't use GETACLCNT and similar ops, since they are unreliable.
+
+        - There were several instances of this pattern:
+
+            for (;;) {
+              n = acl (f, GETACLCNT, 0, NULL);
+              [ allocate an array A of size N ]
+              if (acl (f, GETACL, n, a) == n)
+                break;
+            }
+
+          This loop might never terminate if some other process is constantly
+          manipulating the file's ACL.  The loop should be rewritten to
+          terminate.
+
+        - The acl (... GETACLNT ...) call is merely an optimization; its value
+          is merely a hint as to how big to make the array.  A better
+          optimization is to avoid the acl (... GETACLNT ...)  call entirely,
+          and just guess a reasonably-big size, growing the size and trying
+          again if it's not large enough.  This guarantees termination, and
+          saves a system call.
+
+       * lib/acl-internal.h: Include <limits.h>.
+       (MIN, SIZE_MAX): New macros.
+       * lib/file-has-acl.c (file_has_acl) [Solaris]: Read the entries into
+       a stack-allocated buffer, and use malloc if it does not fit. Don't
+       use GETACLCNT.
+       * lib/set-mode-acl.c (qset_acl) [Solaris]: Likewise.
+
+2012-02-19  Bruno Haible  <bruno@clisp.org>
+
+       acl: Fix endless loop on Solaris with vxfs.
+       * lib/file-has-acl.c (file_has_acl) [Solaris]: Treat a failing
+       acl()/facl() call for ACE_GETACL like a failing call for ACE_GETACLCNT.
+       * lib/set-mode-acl.c (qset_acl) [Solaris]: Likewise.
+       * lib/copy-acl.c (qcopy_acl)[Solaris]: Likewise.
+       * tests/test-sameacls.c (main)[Solaris]: Likewise.
+       Reported by Bill Jones in
+       <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10639>, via Paul Eggert.
+
+2012-02-19  Bruno Haible  <bruno@clisp.org>
+
+       acl: Fix copy-acl test failure on Solaris 11 2011-11.
+       * lib/file-has-acl.c (NEW_ACE_WRITEA_DATA): New macro.
+       (acl_ace_nontrivial): Relax the restrictions on access_masks[] so
+       that this function returns 0 in some more cases.
+
+2012-02-19  Bruno Haible  <bruno@clisp.org>
+
+       acl: Update doc references.
+       * doc/acl-resources.txt: Update links to Solaris documentation.
+
+2012-02-19  Bruno Haible  <bruno@clisp.org>
+
+       Fix test failure in many locales on Solaris 11.
+       * tests/test-pipe-filter-gi1.c (main): Don't use range expression in
+       'tr' arguments.
+       * tests/test-pipe-filter-ii1.c (main): Likewise.
+       * build-aux/bootstrap (check_versions): Run 'tr' command with range
+       expressions in the C locale.
+       * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise.
+       * m4/host-os.m4 (gl_HOST_OS): Likewise.
+
+2012-02-19  Bruno Haible  <bruno@clisp.org>
+
+       gnulib-tool: Improve usage message.
+       * gnulib-tool (func_usage): Move doc of --help and --version to the
+       section "Operation modes".
+
+2012-02-18  Reuben Thomas  <rrt@sc3d.org>
+
+       README-release: make it easier to execute commands
+       * top/README-release: break commands out on to separate lines.
+
+2012-02-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       GNUmakefile: simplify detection of unconfigured trees
+       * top/GNUmakefile: Use $(wildcard) instead of $(shell) to determine
+       whether the tree make is being run from is already configured or
+       not.  Related simplifications.
+
+2012-02-13  Simon Josefsson  <simon@josefsson.org>
+
+       * gnulib-tool (func_usage): Document --help and --version.
+
+2012-02-11  Jim Meyering  <meyering@redhat.com>
+
+       bootstrap: don't exit 0 upon gnulib-tool failure
+       * build-aux/bootstrap (gnulib_tool): If gnulib-tool fails, exit with
+       its exit status, not 0.
+
+2011-12-19  Reuben Thomas  <rrt@sc3d.org>
+
+       README-release: various improvements
+       * top/README-release: Give a command to push changes for the
+       release.  Add "distcheck" to list of other pre-release checks.
+       Fix instance of "make stable" which should be "make TYPE".
+
 2012-02-09  Paul Eggert  <eggert@cs.ucla.edu>
 
        maint: replace FSF snail-mail addresses with URLs