fts, getcwd, glob: audit for dirfd returning -1
[pspp] / ChangeLog
index 80e073625b7f2c39e7a09fef613138d6a7f759af..a9cb9769d6030e9017031cf0c58f41f09d4c3f77 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,81 @@
+2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fts, getcwd, glob: audit for dirfd returning -1
+       * lib/fts.c (opendir): Remove #define; no longer used.
+       (opendirat): New arg PDIR_FD.  All callers changed.
+       (fts_build, _opendir2): Use new opendirat to avoid the need for
+       dirfd, or for checking whether dirfd returns a negative value.
+       Don't use opendir; always use openat followed by fdopendir.
+       * lib/getcwd.c (__getcwd): Don't reset fd; fdopendir no longer clobbers
+       it.
+       * lib/glob.c (link_exists_p): Add comment explaining why dirfd never
+       returns -1 here.
+       * modules/fts (Depends-on): Remove dirfd.
+       * modules/getcwd (Depends-on): Likewise.
+
+2010-09-13  Eric Blake  <eblake@redhat.com>
+
+       float: fix broken MirBSD header
+       * m4/float_h.m4 (gl_FLOAT_H): MirBSD copied OpenBSD's bug.
+       * doc/posix-headers/float.texi (float.h): Document it.
+
+2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fts: use O_NOFOLLOW to avoid race condition when opening a directory
+       * lib/fts.c (opendirat): New arg extra_flags.
+       (__opendir2): Use it to avoid following symlinks when opening
+       a directory, if symlinks are not supposed to be followed.  See
+       <http://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00213.html>.
+
+       fdopendir: preserve argument fd before returning
+       * lib/fdopendir.c: Adjust comments to say POSIX, not Solaris.
+       (fdopendir_with_dup, fd_clone_opendir): New static functions.
+       (fdopendir): Use them, arranging for FD to be open to the same
+       directory that it was when it started.  (It might be temporarily
+       closed while fdopendir is running, so this not thread- or
+       signal-safe.)  Be careful to do the right thing even when file
+       descriptors are scarce and dup fails with errno == EMFILE.  See
+       <http://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00208.html>.
+
+2010-09-10  Paolo Bonzini  <bonzini@gnu.org>
+
+       regex: Pass the system regex if its only problem is 32-bit regoff_t.
+       * NEWS: Document change.
+       * m4/regex.m4: Disable test for regoff_t size.
+
+2010-09-13  Jim Meyering  <meyering@redhat.com>
+
+       fts: don't operate on an invalid file descriptor after failed dup
+       * lib/fts.c (fts_build): Don't call set_cloexec_flag on a
+       negative file descriptor.
+
+2010-09-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       savedir: add streamsavedir, deprecate fdsavedir
+       * NEWS: Mention deprecation of fdsavedir.
+       * lib/savedir.c (streamsavedir): New extern function, whose name
+       ends in "savedir" to be consistent with the others.  This differs
+       from savedirstream in that it doesn't close its argument.  The
+       next version of GNU tar will use this instead of fdsavedir, to
+       avoid some race conditions and conserve file descriptors.
+       (savedirstream): Reimplement as a wrapper around streamsavedir.
+       (fdsavedir): Add a comment deprecating this function.  As far as
+       I know, only GNU tar used it, and GNU tar doesn't need it any more.
+       * lib/savedir.h (streamsavedir): New decl.
+       (fdsavedir): Add a comment deprecating this.
+
+2010-09-10  Bruno Haible  <bruno@clisp.org>
+
+       langinfo: Fix last commit.
+       * m4/langinfo_h.m4 (gl_LANGINFO_H): Initialize
+       HAVE_LANGINFO_T_FMT_AMPM, HAVE_LANGINFO_YESEXPR.
+       Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
+2010-09-10  Bruno Haible  <bruno@clisp.org>
+
+       relocatable-prog-wrapper: Fix compilation failure due to O_EXEC.
+       * lib/progreloc.c (O_EXEC): Define fallback.
+
 2010-09-10  Paul Eggert  <eggert@cs.ucla.edu>
 
        fcntl-h: define O_CLOEXEC and O_EXEC if not defined; use new defines