getcwd: break fdopendir + save_cwd recursive loop (Bug#13516)
[gnulib.git] / ChangeLog
index 8c61adb..f5676e1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,426 @@
+2013-02-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       getcwd: break fdopendir + save_cwd recursive loop (Bug#13516)
+       Reported for OS X 10.8.2 by Assaf Gordon in
+       <http://bugs.gnu.org/13516>.
+       * lib/getcwd.c (HAVE_OPENAT_SUPPORT): Do not define if
+       !HAVE_OPENAT && !HAVE_FDOPENDIR.
+       * m4/getcwd-abort-bug.m4: Reformat to match test-getcwd.c
+       so that they can be kept in sync more easily.  Avoid PATH_MAX
+       test on the Hurd.  Sync from test-getcwd.c for errno tests after
+       mkdir or chdir failure.
+       * tests/test-getcwd.c (HAVE_OPENAT_SUPPORT): New macro, from
+       lib/getcwd.c.
+       (test_abort_bug): Do not test for the deep directory bug unless we
+       have openat support.  Avoid PATH_MAX test on the Hurd.
+
+       regex-tests, regex: fix bug: memset undeclared
+       * tests/test-regex.c: Don't include regex.h twice.  Include
+       string.h, to declare memset.  Christensen's report also mentioned
+       this issue.
+       * m4/regex.m4 (gl_REGEX): Keep test program more in sync with
+       test-regex.c, to avoid future problems like this.  Remove
+       AC_INCLUDES_DEFAULT.  Include <string.h>.  Don't include <regex.h>
+       twice.
+
+       regex-tests: fix link errors on older Solaris
+       These need to link with @LIBINTL@ to get libintl_gettext.
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-02/msg00003.html>.
+       * modules/regex-tests (test_regex_LDADD): New macro.
+
+2013-01-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex-tests: new module
+       * modules/regex-tests, tests/test-regex.c: New files.
+
+       regex: fix off-by-one error in configure test
+       * m4/regex.m4 (gl_REGEX): Test should return 21, not 20.
+
+2013-01-31  Eric Blake  <eblake@redhat.com>
+
+       regex: avoid infinite configure test
+       * m4/regex.m4 (gl_REGEX): Add an alarm escape hatch.
+
+2013-01-31  Reuben Thomas  <rrt@sc3d.org>
+
+       openpty: fix bug where HAVE_OPENPTY wasn't defined
+       See the thread starting at:
+       http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00185.html
+       * m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when the
+       openpty function exists, not merely when we intend to replace it.
+
+2013-01-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       sys_time: port to Solaris 2.6
+       There is a circularity problem on Solaris 2.6, where <time.h> includes
+       <sys/time.h> for struct timespec.  The include nesting is gnulib
+       <time.h>, system <time.h>, gnulib <sys/time.h>, system
+       <sys/time.h>, gnulib <sys/types.h>, system <sys/types.h>, gnulib
+       <sys/select.h>, gnulib <signal.h>, system <sys/signal.h>, system
+       <sys/siginfo.h>; the last, innermost file needs struct
+       timestruc_t, which is defined in <sys/time.h>, which has not been
+       fully parsed.  Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00113.html>.
+       * lib/sys_select.in.h: Treat Solaris 2.6's problem with
+       <sys/time.h> and <sys/types.h> like OSF/1's similar problem.
+       * lib/sys_time.in.h: Redo to resemble sys_select.in.h, which
+       uses split double-inclusion guards.
+
+2013-01-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: test for buffer overrun
+       * m4/regex.m4 (gl_REGEX): Add test case, by Andreas Schwab,
+       for the just-fixed regex bug.
+
+2013-01-29  Andreas Schwab  <schwab@suse.de>
+
+       regex: fix buffer overrun in regexp matcher
+       * lib/regexec.c (extend_buffers): Add parameter min_len.
+       (check_matching): Pass minimum needed length.
+       (clean_state_log_if_needed): Likewise.
+       (get_subexp): Likewise.
+
+2013-01-28  Pádraig Brady  <P@draigBrady.com>
+
+       mountlist: don't consider "devtmpfs" as dummy
+       * lib/mountlist.c (ME_DUMMY_0): Remove "devtmpfs"
+       as there is storage associcated with it.
+
+2013-01-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       futimens-tests, utimens-tests: Depend on gettext.
+       This works around a problem introduced in my 2013-01-12 patch,
+       which added @LIBINTL@ to these modules.
+       * modules/futimens-tests (Depends-on):
+       * modules/utimens-tests (Depends-on): Add gettext.
+
+2013-01-26  Eric Blake  <eblake@redhat.com>
+
+       test-getpeername: fix typo
+       * tests/test-getpeername.c: Fix typo introduced in fd cleanup.
+
+2013-01-20  Bernhard Voelker  <mail@bernhard-voelker.de>
+
+       bootstrap: remove the need for a sorted .gitignore file
+       * build-aux/bootstrap (insert_sorted_if_absent): Adjust and
+       rename to insert_if_absent(), so that we don't need or generate
+       a sorted .gitignore file.  We do require a .gitignore with no
+       existing duplicate entries and enforce that.
+       (sort_patterns): Remove this function as we now use the simpler
+       technigue of inserting blacklist entries at the top of the file,
+       assuming gnulib won't be inserting !whitelist entries.
+
+2013-01-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       readlinkat: don't depend on gl_FUNC_OPENAT
+       * m4/readlinkat.m4 (gl_FUNC_READLINKAT): Don't require gl_FUNC_OPENAT.
+       Perhaps a similar change needs to be made for linkat.m4, mkfifoat.m4,
+       renameat.m4, symlinkat.m4; but one thing at a time.
+
+       statat: new module, split out from fstatat
+       GNU Emacs needs the POSIX-specified fstatat, but not the
+       gnulib-specified statat and lstat.  Split the latter two into a
+       new module 'statat'.
+       * lib/openat.h: Depend on GNULIB_STATAT, not GNULIB_FSTATAT.
+       * lib/openat.h, lib/statat.c (STATAT_INLINE):
+       Rename from FSTATAT_INLINE. All uses changed.
+       * modules/fstatat (Files): Remove lib/statat.c.
+       (gl_MODULE_INDICATOR([fstatat])): Remove.
+       (lib_SOURCES): Remove.
+       (Maintainer): Add self.
+       * modules/statat, modules/statat-tests, tests/test-statat.c: New files.
+       * tests/test-fstatat.c (BASE): Don't define if already defined.
+       (do_stat, do_lstat) [!TEST_STATAT]: Test fstatat instead.
+
+2013-01-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tests: don't assume fd 99 is closed
+       * tests/test-accept.c, tests/test-accept4.c, tests/test-bind.c:
+       * tests/test-close.c, tests/test-connect.c, tests/test-dprintf.c:
+       * tests/test-dup.c, tests/test-dup2.c, tests/test-faccessat.c:
+       * tests/test-fchdir.c, tests/test-fchmod.c, tests/test-fchmodat.c:
+       * tests/test-fchown.c, tests/test-fchownat.c, tests/test-fclose.c:
+       * tests/test-fdatasync.c, tests/test-fdopen.c, tests/test-fdopendir.c:
+       * tests/test-fflush.c, tests/test-fgetc.c, tests/test-fputc.c:
+       * tests/test-fread.c, tests/test-freopen.c, tests/test-fseeko4.c:
+       * tests/test-fstat.c, tests/test-fstatat.c, tests/test-fsync.c:
+       * tests/test-ftello4.c, tests/test-ftruncate.c, tests/test-futimens.h:
+       * tests/test-fwrite.c, tests/test-getpeername.c:
+       * tests/test-getsockname.c, tests/test-getsockopt.c:
+       * tests/test-grantpt.c, tests/test-ioctl.c, tests/test-isatty.c:
+       * tests/test-linkat.c, tests/test-listen.c, tests/test-lseek.c:
+       * tests/test-mkdirat.c, tests/test-mkfifoat.c, tests/test-openat.c:
+       * tests/test-pread.c, tests/test-pwrite.c, tests/test-read.c:
+       * tests/test-readlinkat.c, tests/test-recv.c, tests/test-recvfrom.c:
+       * tests/test-renameat.c, tests/test-select.h, tests/test-send.c:
+       * tests/test-sendto.c, tests/test-setsockopt.c, tests/test-shutdown.c:
+       * tests/test-symlinkat.c, tests/test-ttyname_r.c:
+       * tests/test-unlinkat.c, tests/test-unlockpt.c:
+       * tests/test-utimensat.c, tests/test-vdprintf.c, tests/test-write.c:
+       Close file descriptor 99, instead of assuming it's already closed.
+
+2013-01-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stpncpy: port to OS X 10.8
+       * lib/stpncpy.c (__stpncpy): Parenthesize name when defining function.
+       Problem reported by Assaf Gordon in <http://bugs.gnu.org/13495>.
+
+2013-01-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       unistd: port to recent mingw
+       * lib/unistd.in.h: Remove special invocation convention for mingw,
+       which breaks for the latest mingw version.  See John W. Eaton in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00100.html>.
+
+       largefile: port better to Mac OS X 10.5
+       This patch is backported from Autoconf git.
+       * m4/largefile.m4 (AC_SYS_LARGEFILE): Use AC_DEFINE, not
+       AH_VERBATIM, to define _DARWIN_USE_64_BIT_INODE, to avoid problems
+       with ino_t size being different for configuration time versus
+       build/run time.  Problem reported by PHO in
+       <http://lists.gnu.org/archive/html/bug-autoconf/2013-01/msg00040.html>.
+
+2013-01-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: clarify -Werror
+       * doc/warnings.texi (warnings): -Werror is not always a bad idea;
+       clarify that it's intended for developers, not for ordinary builds,
+       and mention --enable-gcc-warnings as one possible use.
+
+2013-01-15  Andoni Morales Alastruey  <ylatuya@gmail.com>  (tiny change)
+
+       stdint: fix build with Android's Bionic fox x86
+       * lib/stdint.in.h: fix check to test if included-fixed/sys/types.h
+       was already included as _SSIZE_T_DEFINED_ might also be defined
+       in include/machine/_types.h, which is included by stdio.h
+
+2013-01-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       net_if-tests: port to Solaris 7 + GCC 3.4.6
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00091.html>.
+       * tests/test-net_if.c (ni): Move to next the code that uses it,
+       so that it's declared only if needed.
+
+2013-01-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       net_if-tests: port to older Solaris
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00086.html>.
+       * modules/net_if-tests (NET_IF_LIB): New substitution.
+       (test_net_if_LDADD): New makefile macro, which uses NET_IF_LIB.
+       (HAVE_IF_NAMEINDEX): New C macro.
+       * tests/test-net_if.c: Bypass most of the test if !HAVE_IF_NAMEINDEX.
+
+       system-quote-tests: port to older Solaris
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00086.html>.
+       * tests/test-system-quote-child.c (fopen, fread): Undef.
+
+       c-xvasprintf etc.: fix link errors on older Solaris
+       These need to link with @LIBINTL@ to get libintl_gettext.
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00086.html>.
+       * modules/c-xvasprintf-tests (test_c_xvasprintf_LDADD):
+       * modules/readtokens-tests (test_readtokens_LDADD): New macros.
+       * modules/futimens-tests (test_futimens_LDADD):
+       * modules/utimens-tests (test_utimens_LDADD): Add @LIBINTL@.
+
+2013-01-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       locale: port to Solaris 2.6 and 7 + GNU gettext
+       * lib/locale.in.h: Just include_next <locale.h> when
+       being invoked recursively.  This prevents problems on Solaris 2.6 and 7
+       when combining the localename module with GNU gettext 0.18.2.
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00084.html>.
+
+2013-01-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdlib: port to Solaris 2.6
+       Also, the code worked on Solaris 7 through 9 only by accident.
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00059.html>.
+       * lib/stdlib.in.h: If __need_system_stdlib_h is defined,
+       simply include the system stdlib.h.
+       * lib/getopt.in.h (__need_system_stdlib_h):
+       * lib/pthread.in.h (__need_system_stdlib_h):
+       * lib/unistd.in.h (__need_system_stdlib_h) [!__GLIBC__]:
+       Define when including <stdlib.h>, to avoid problems at least for
+       the pthread case on Solaris 2.6 and 7.  These .h files can get by
+       with the system stdlib.h.
+
+2013-01-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: update main copyright year
+       * doc/gnulib.texi: Update copyright date.
+
+       doc: improve ISO 8601 discussion
+       * doc/parse-datetime.texi (Combined date and time of day items):
+       Specify more carefully what formats are supported and what is
+       done with excess precision.
+
+2013-01-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: avoid small caps
+       * doc/parse-datetime.texi, doc/regex.texi: Don't use small caps;
+       they're more trouble than they're worth.  Suggested by Karl Berry
+       in <http://bugs.gnu.org/13360>.
+
+       regex: conform to strict C
+       * lib/regcomp.c (parse_bracket_exp): Add cast to conform to strict C.
+       From Aharon Robbins.
+
+       gnulib-tool: fix incompatibility with autopoint 0.18.2
+       * gnulib-tool: Don't indent AM_GNU_GETTEXT_VERSION line.
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00053.html>.
+
+2013-01-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fprintftime: bring back and reword fwrite comment
+       * lib/strftime.c (cpy) [FPRINTFTIME]: Re-add reworded comment.
+
+       stdio: remove now-unnecessary stdio.c
+       Since stdio.in.h no longer uses inline functions, we no longer
+       need to compile the extern versions.
+       * lib/stdio.c: Remove.
+       * modules/stdio (Files): Remove lib/stdio.c.
+       (lib_SOURCES): Remove.
+
+       unicodeio: depend on stdio, not ignore-value
+       * lib/unicodeio.c: Do not include ignore-value.h.
+       (fwrite_success_callback): Use plain fwrite, not ignore_value + fwrite.
+       * modules/unicodeio (Depends-on): Depend on stdio, not ignore-value.
+
+       fprintftime: depend on stdio, not ignore-value
+       * lib/strftime.c [FPRINTFTIME]: Do not include ignore-value.h.
+       (cpy) [FPRINTFTIME]: Use plain fwrite, not ignore_value of fwrite,
+       since the stdio module arranges to silence that warning now.
+       * modules/fprintftime (Depends-on): Depend on stdio, not ignore-value.
+
+2012-10-04  Simon Josefsson  <simon@josefsson.org>
+
+       stdint-tests: Fix expanded-before-required-warning.
+       * modules/stdint-tests (Depends-on): Use AC_REQUIRE.
+
+2013-01-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fwrite: silence __wur only for older glibc versions
+       * lib/stdio.in.h (fwrite): Limit workaround to glibc 2.4 through 2.15.
+       This will help us remove this workaround some time in the far future.
+
+2013-01-03  Eric Blake  <eblake@redhat.com>
+
+       fwrite: silence __wur without using inline
+       * lib/stdio.in.h (fwrite): Limit warn_unused_result workaround to
+       just gcc, and in a way that avoids inline issues.
+       * modules/stdio (Depends-on): Drop extern-inline.
+
+2013-01-03  Jim Meyering  <jim@meyering.net>
+
+       update-copyright: avoid copyright notice date corruption
+       Given a sequence of copyright year numbers in which the final
+       one was a two-digit number that happened to be a substring of
+       a preceding four-digit year number, we would mistakenly update
+       the substring (from two- to four-digit) rather than the two-digit
+       number at the end, which, combined with the addition of the current
+       4-digit year number would yield two 5-digit year numbers, e.g.,
+       here, it would convert the first "99" to "1999, 2013" rather than
+       the final one:
+         1991, 99
+         11999, 20131, 1999
+       * build-aux/update-copyright: Tighten a regexp.
+       * tests/test-update-copyright.sh: Add a test case to trigger the bug.
+       Reported by Joseph Myers in
+       http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/32281
+
+2013-01-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: omit needless signed-pointer casts
+       * lib/regcomp.c (build_charclass, build_charclass_op):
+       Use char *, not unsigned char *, for class name and extra.
+       The char values are always nonnegative so there's no need to
+       insist on unsigned char * here, and using char * removes the need
+       for casts.  Reported by Aharon Robbins in
+       <http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
+
+       regex: support Gawk, which never uses alloca
+       * lib/regex_internal.h [!_LIBC && !HAVE_ALLOCA]:
+       Do not include in this case.  Gawk doesn't supply a substitute
+       alloca.h and doesn't need one.
+
+       regex: port __libc_lock_define usage to C89
+       * lib/regex_internal.h (__libc_lock_define) [!_LIBC]: Remove.
+       (struct re_dfa_t): Use #ifdef instead.  '__libc_lock_define (, lock)'
+       does not conform to C89, as it has an empty macro argument.
+       Reported by Aharon Robbins in
+       <http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
+
+2013-01-01  Eric Blake  <eblake@redhat.com>
+
+       maint: update all copyright year number ranges
+       Run "make update-copyright".
+
+       version-etc: bump copyright year reported in --version
+       * lib/version-etc.c (COPYRIGHT_YEAR): Update to 2013.
+
+2012-12-31  Eric Blake  <eblake@redhat.com>
+
+       sigprocmask-tests: skip test if pid is unexpectedly large
+       * tests/test-sigprocmask.c (main): Add range check.
+
+       git-version-gen: avoid test -z portability glitch
+       * build-aux/git-version-gen: Prefer portable test spelling, since
+       git-version-gen is run on more than just developer machines.
+
+2012-12-31  Peter Rosin  <peda@lysator.liu.se>  (tiny change)
+
+       git-version-gen: add --fallback option to use if git is not present
+       * build-aux/git-version-gen: Add support for the new option --fallback,
+       which comes into play when there is no $tarball_version_file and
+       git is not working.
+       (scriptversion): Update.
+
+       maint.mk: handle missing git with more grace
+       * top/maint.mk (no-submodule-changes, public-submodule-commit):
+       Quietly proceed if git is not present.
+
+2012-12-31  Eric Blake  <eblake@redhat.com>
+
+       dup2: work around cygwin bug
+       * m4/dup2.m4 (gl_FUNC_DUP2): Flush out cygwin core dump.
+       * lib/dup2.c (rpl_dup2): Work around it.
+       * doc/posix-functions/dup2.texi (dup2): Document it.
+
+2012-12-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: remove unnecessary dependency on localcharset.h
+       * lib/regex_internal.h [!_LIBC]: Don't include localcharset.h;
+       hasn't been needed for years.
+       * modules/regex (Depends-on): Remove localcharset.
+
+       regex: revert single-byte change
+       * lib/regexec.c (check_node_accept_bytes): Revert previous change
+       to this function.  This was alredy fixed in a different way, at
+       bdb56bacd57070eced9998569ffe3f3c37ef5964 in the glibc git; see
+       <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=510219> and
+       <http://sourceware.org/bugzilla/show_bug.cgi?id=9697>.
+
+       regex: simplify based on Gawk version
+       * lib/regex_internal.c (re_dfa_add_node): Simplify.
+       Reported by Aharon Robbins in
+       <http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
+
 2012-12-29  Paul Eggert  <eggert@cs.ucla.edu>
 
+       regex: check that pattern char is single-byte
+       Reported by Aharon Robbins in
+       <http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
+       * lib/regexec.c (check_node_accept_bytes):
+       Return 0 if the pattern string has a multibyte character here.
+
        regex: implement rational ranges
        Reported by Aharon Robbins in
        <http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
 2011-07-06  Erik Faye-Lund  <kusmabite@gmail.com>
 
        poll: do not return 0 on timeout=-1
-       * lib/poll.c: Loop with yield if no events occured
+       * lib/poll.c: Loop with yield if no events occurred.
 
 2011-07-06  Eric Blake  <eblake@redhat.com>
 
        coding: utf-8
        End:
 
-       Copyright (C) 1997-2012 Free Software Foundation, Inc.
+       Copyright (C) 1997-2013 Free Software Foundation, Inc.
 
        Copying and distribution of this file, with or without
        modification, are permitted provided the copyright notice