pselect: reject invalid file descriptors
[gnulib.git] / ChangeLog
index 282e060..70fd406 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,358 @@
+2012-10-02  Eric Blake  <eblake@redhat.com>
+
+       pselect: reject invalid file descriptors
+       * m4/pselect.m4 (gl_FUNC_PSELECT): Probe for FreeBSD bug.
+       * lib/pselect.c (rpl_pselect) [!win32]: Work around it.
+       * modules/pselect (Depends-on): Add dup2.
+       * doc/posix-functions/pselect.texi (pselect): Document this.
+
+       select: reject invalid file descriptors
+       * m4/select.m4 (gl_FUNC_SELECT): Probe for FreeBSD bug.
+       * lib/select.c (rpl_select) [!win32]: Work around it.
+       * modules/select (Depends-on): Add dup2.
+       * doc/posix-functions/select.texi (select): Document this.
+
+       select: enhance test
+       * tests/test-select.h (do_select_bad_nfd_nowait, test_bad_nfd):
+       New functions.
+       (test_function): Enhance test.
+       (do_select_bad_fd): Avoid any stale errno values.
+
+       ptsname: reject invalid file descriptors
+       http://www.austingroupbugs.net/view.php?id=503
+       * m4/ptsname.m4 (gl_FUNC_PTSNAME): Probe for FreeBSD bug.
+       * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Add new witness.
+       * modules/stdlib (Makefile.am): Replace witness.
+       * lib/stdlib.in.h (ptsname): Allow for replacement.
+       * modules/ptsname (configure.ac): Trigger replacement.
+       * doc/posix-functions/ptsname.texi (ptsname): Document this.
+
+2012-10-02:  Nikos Mavrogiannopoulos  <nmav@gnutls.org>  (tiny change)
+
+       hash-pjw-bare: new module
+       * lib/hash-pjw-bare.c: New file, very much like hash-pjw.c.
+       * lib/hash-pjw-bare.h: Likewise.
+       * modules/hash-pjw-bare: New file.
+       * MODULES.html.sh (Misc): Add it.
+
+2012-10-02  Eric Blake  <eblake@redhat.com>
+
+       manywarnings: cater to more gcc infelicities
+       * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add test for
+       -Wuninitialized without -O.
+
+2012-10-01  Ed Maste  <emaste@freebsd.org>  (tiny change)
+
+       select, poll tests: Make setsockopt invocation effective.
+       * tests/test-poll.c (open_server_socket): Move setsockopt() call before
+       the bind() call.
+       * tests/test-select.h (open_server_socket): Likewise.
+
+2012-09-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       sockets, sys_stat: restore AC_C_INLINE
+       This undoes the 2012-09-22 patch.
+       * m4/sockets.m4 (gl_SOCKETS):
+       * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H):
+       Restore AC_C_INLINE, since MSVC requires __inline or _inline
+       and does not support plain 'inline'.  Reported by Bruno Haible in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00183.html>.
+
+2012-09-30  Bruno Haible  <bruno@clisp.org>
+
+       localeconv tests: Avoid test failure on OpenIndiana.
+       * tests/test-localeconv.c (main): On OpenIndiana (a Solaris 11 variant)
+       skip the 'grouping' and 'mon_grouping' tests.
+       Reported by Jim Meyering.
+
+2012-09-30  Bruno Haible  <bruno@clisp.org>
+
+       havelib: Follow libtool developments.
+       * m4/lib-ld.m4: Rebase on libtool.m4 from libtool-2.4.
+       Suggested by Simon Josefsson.
+
+2012-09-29  Jim Meyering  <meyering@redhat.com>
+
+       fstatat.c: fix a compile-impeding typo
+       * lib/fstatat.c (FSTATAT_INLINE): Fix typo: s/#include/#define/
+       Introduced in commit v0.0-7636-gd202279.
+       Mats Erik Andersson reported the resulting OpenBSD compilation failure.
+
+2012-09-28  Akim Demaille  <akim@lrde.epita.fr>
+
+       extern-inline: provide a -Wundef safe config.h
+       * m4/extern-inline.m4 (gl_EXTERN_INLINE): Protect
+       "#if __GNUC_STDC_INLINE__" with "defined __GNUC_STDC_INLINE__"
+       to produce a -Wundef warning free config.h.
+
+2012-09-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       hash-pjw: relax license to LGPLv2+
+       * modules/hash-pjw (License): Relax, with consent of author.
+
+2012-09-25  Akim Demaille  <akim@lrde.epita.fr>
+
+       maint.mk: fix strict vs. lazy variable issues with RELEASE
+       * top/maint.mk (_equal): New function.
+       (member_check): Strip the result to avoid spurious spaces.
+       (url_dir_list): Do not use ifeq, which is strict, as it will
+       require RELEASE_TYPE to be defined.
+       (announcement_Cc_, announcement_mail_headers_): Likewise: instead
+       of relying on ifeq, use $(release_type) to dispatch (lazily) onto...
+       (announcement_Cc_alpha,announcement_mail_headers_alpha)
+       (announcement_Cc_beta,announcement_mail_headers_beta)
+       (announcement_Cc_stable,announcement_mail_headers_stable): these.
+       (release): Do not depend on $(release-type), as it forces its
+       evaluation.  Bounce to it.
+
+2012-09-25  Akim Demaille  <akim@lrde.epita.fr>
+
+       maint.mk: formatting changes
+       * top/maint.mk: Indent bodies of if's.
+
+2012-09-21  Akim Demaille  <akim@lrde.epita.fr>
+
+       maint.mk: factor the validation of RELEASE_TYPE
+       With help from Jim Meyering.
+       http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00132.html
+       * top/maint.mk (_empty, _sp): Move their definition earlier.
+       (member-check, release-type): New.
+       Use the latter instead of $(RELEASE_TYPE).
+       Remove now useless local checks.
+
+2012-09-20  Akim Demaille  <akim@lrde.epita.fr>
+
+       maint.mk: provide "make upload" to ease uploading
+       See
+       <http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00028.html>.
+       Do not depend simply on the current $(VERSION), as there may have been
+       new commits since the tarball generation.  Rather, rely on $(RELEASE),
+       as "make release-commit" already does.
+
+       For consistency, add "make release RELEASE='X.Y TYPE'" as an alias for
+       "make TYPE".
+
+       * top/maint.mk (upload_command, upload, release): New.
+       (RELEASE_TYPE): If undefined, default to the second word of $(RELEASE).
+       (VERSION): first word of $(RELEASE) is always right.
+       (emit_upload_commands): Adjust.
+       * top/README-release: Update.
+
+2012-09-20  Akim Demaille  <akim@lrde.epita.fr>
+
+       maint.mk: silent rules
+       With help from Stefano Lattarini.
+       * top/maint.mk (writable-files): Use $(AM_V_GEN).
+       (announcement): Use $(AM_V_at).
+
+2012-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       localename: port gl_locale_name_thread_unsafe to FreeBSD
+       * lib/localename.c (gl_locale_name_thread_unsafe): Port to FreeBSD,
+       and use the simpler FreeBSD implementation on Mac OS X as well.
+       Original idea suggested by Ed Maste in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00094.html>.
+
+2012-09-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       binary-io, eealloc, mbfile, mbiter, mbutil, xsize: better 'inline'
+       * lib/binary-io.c, lib/eealloc.c, lib/mbfile.c, lib/mbiter.c:
+       * lib/mbuiter.c, lib/xsize.c: New files.
+       * lib/binary-io.h (BINARY_IO_INLINE):
+       * lib/eealloc.h (EEALLOC_INLINE):
+       * lib/mbfile.h (MBFILE_INLINE):
+       * lib/mbiter.h (MBITER_INLINE):
+       * lib/mbuiter.h (MBUITER_INLINE):
+       * lib/xsize.h (XSIZE_INLINE):
+       New macros.
+       Replace all uses of 'static inline' with them.
+       Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
+       * m4/eealloc.m4 (gl_EEALLOC):
+       * m4/mbfile.m4 (gl_MBFILE):
+       * m4/mbiter.m4 (gl_MBITER):
+       * m4/xsize.m4 (gl_XSIZE):
+       Do not require AC_C_INLINE.
+       * modules/binary-io (Files, lib_SOURCES): Add lib/binary-io.c
+       * modules/eealloc (Files, lib_SOURCES): Add lib/eealloc.c.
+       * modules/mbfile (Files, lib_SOURCES): Add lib/mbfile.c.
+       * modules/mbiter (Files, lib_SOURCES): Add lib/mbiter.c.
+       * modules/mbuiter (Files, lib_SOURCES): Add lib/mbuiter.c.
+       * modules/xsize (Files, lib_SOURCES): Add lib/xsize.c.
+       * modules/binary-io, modules/eealloc, modules/mbfile:
+       * modules/mbiter, modules/mbuiter:
+       (Depends-on): Add extern-inline.
+
+       pipe-filter-gi, pipe-filter-ii: better use of 'inline'
+       * lib/pipe-filter-aux.c: New file.
+       * lib/pipe-filter-aux.h (PIPE_FILTER_AUX_INLINE): New macro.
+       Replace all uses of 'static inline' with it.
+       Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
+       * lib/pipe-filter-gi.c (filter_init, filter_cleanup)
+       (filter_retcode): No real need for inline here.
+       * modules/pipe-filter-gi, modules/pipe-filter-ii:
+       (Files): Add lib/pipe-filter-aux.c.
+       (Depends-on): Add extern-inline.
+       (configure.ac): Do not require AC_C_INLINE.
+       (lib_SOURCES): Add pipe-filter-aux.c.
+
+       fdutimensat: omit unnecessary AC_C_INLINE
+       * modules/fdutimensat (configure.ac): Remove AC_C_INLINE.
+
+       fchmodat, fchownat, fstatat: use extern-inline
+       * lib/fchmodat.c, lib/openat.h (FCHMODAT_INLINE):
+       * lib/fchownat.c, lib/openat.h (FCHOWNAT_INLINE):
+       * lib/fstatat.c, lib/openat.h (FSTATAT_INLINE):
+       New macros.
+       * lib/openat.h:
+       Replace all uses of 'static inline' with them.
+       Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
+       * modules/fchmodat, modules/fchownat, modules/fstatat:
+       * modules/openat-h:
+       (Depends-on):
+       Add extern-inline.
+       (configure.ac): Remove AC_C_INLINE.
+
+       acl, mbchar, priv-set: use extern-inline
+       * lib/set-mode-acl.c, lib/acl-internal.h (ACL_INTERNAL_INLINE):
+       * lib/mbchar.c, lib/mbchar.h (MBCHAR_INLINE):
+       * lib/priv-set.c, lib/priv-set.h (PRIV_SET_INLINE):
+       New macros.
+       * lib/acl-internal.h, lib/mbchar.h, lib/priv-set.h:
+       Replace all uses of 'static inline' with it.
+       Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
+       * m4/acl.m4 (gl_FUNC_ACL):
+       * m4/mbchar.m4 (gl_MBCHAR):
+       * m4/priv-set.m4 (gl_PRIV_SET):
+       Remove AC_C_INLINE, since 'inline' is no longer used directly.
+       * modules/acl, modules/mbchar, modules/priv-set (Depends-on):
+       Add extern-inline.
+
+       sockets, sys_stat: remove AC_C_INLINE in MSVC-only cases
+       * m4/sockets.m4 (gl_SOCKETS):
+       * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H):
+       Remove AC_C_INLINE.  Here, 'inline' is used only in MSVC
+       environments where it's already guaranteed to work, so we needn't
+       check for it at 'configure'-time.
+
+       tls-tests: omit unnecessary 'inline'
+       * tests/test-tls.c (perhaps_yield): No longer inline.
+       Simplicity and portability trump efficiency in test cases.
+
+       utimens-tests: avoid unnecessary 'inline'
+       * modules/fdutimensat-tests (configure.ac):
+       * modules/futimens-tests (configure.ac):
+       * modules/utimens-tests (configure.ac):
+       * modules/utimensat-tests (configure.ac):
+       Remove AC_C_INLINE.
+       * tests/test-utimens-common.h (ctime_compare):
+       No longer inline.  Simplicity and portability trump efficiency here.
+
+       misc: don't limit commentary to inline functions
+       * lib/binary-io.h, lib/malloca.h, lib/safe-alloc.c:
+       * lib/xalloc-oversized.h, lib/xsize.h:
+       Contrast macros to functions in general, not just to inline functions,
+       when the commentary does not apply only to inline functions.
+
+2012-09-20  Jim Meyering  <meyering@redhat.com>
+
+       non-recursive-gnulib-prefix-hack: new module
+       * build-aux/prefix-gnulib-mk: Copied from coreutils, derived from
+       the file that originated in Bison.
+       * m4/non-recursive-gnulib-prefix-hack.m4: Likewise, this code is
+       largely copied from a snippet that resided in bison's configure.ac.
+       * modules/non-recursive-gnulib-prefix-hack: New file.
+       * MODULES.html.sh (Support for maintaining and releasing projects):
+       Add it.
+
+2012-09-18  Jim Meyering  <meyering@redhat.com>
+
+       maint.mk: generalize _gl_tight_scope for non-recursive make
+       * top/maint.mk (_gl_tight_scope): Remove a hard-coded assumption
+       that *.h would describe additional .h files in the directory
+       specified by $(_gl_TS_dir).  I.e., add this...
+       (_gl_TS_other_headers): New variable.
+
+       maint.mk: exempt trailing blanks found in "binary" files
+       * top/maint.mk (sc_trailing_blank): Filter out any matches found in
+       "binary" files, as reported by grep.  Suggested by Richard W.M. Jones
+       in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
+
+2012-09-17  Jim Meyering  <meyering@redhat.com>
+
+       maint.mk: sc_prohibit_path_max_allocation: don't FP for UNIX_PATH_MAX
+       * top/maint.mk (sc_prohibit_path_max_allocation): Avoid false-positive
+       match for symbols like UNIX_PATH_MAX. Reported by Richard W.M. Jones
+       in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
+
+2012-09-17  Jim Meyering  <meyering@redhat.com>
+
+       maint.mk: teach sc_prohibit_magic_number_exit to accept 77
+       * top/maint.mk (sc_prohibit_magic_number_exit): Do not complain about
+       uses like "exit (77)".  "77" is automake's "skip this test" exit code.
+       It is not in the same category as "exit (0)" or "exit (1)", and
+       besides, I know of no symbolic name for that 77.  Reported by
+       Richard W.M. Jones in
+       http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
+
+2012-09-17  Jim Meyering  <meyering@redhat.com>
+
+       maint.mk: relax sc_prohibit_strcmp, to avoid a false positive
+       * top/maint.mk (sc_prohibit_strcmp): Relax regexp, so as to match
+       all uses of #define, not just those that start in column 1.
+       Richard W.M. Jones reported a false positive in
+       http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
+
+2012-09-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       localcharset: work around Mac OS X bug with UTF-8 and MB_CUR_MAX
+       * lib/localcharset.c (locale_charset) [DARWIN7]:
+       Return "ASCII" if the system reports "UTF-8" and MB_CUR_MAX <= 1,
+       as these two values are incompatible.  Problem reported by Max Horn.
+       For more discussion, please see
+       <http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00061.html>.
+
+       doc: document sticky-EOF issue
+       * doc/posix-functions/fgetc.texi (fgetc):
+       * doc/posix-functions/fgets.texi (fgets):
+       * doc/posix-functions/fread.texi (fread):
+       * doc/posix-functions/fscanf.texi (fscanf):
+       * doc/posix-functions/getc.texi (getc):
+       * doc/posix-functions/getchar.texi (getchar):
+       * doc/posix-functions/scanf.texi (scanf):
+       Mention that glibc and default Solaris do not conform to
+       C99 and POSIX-2001 or later, with respect to how getchar
+       etc. behave when feof reports nonzero.
+
+2012-09-13  Joachim Schmitz <jojo@schmitz-digital.de>  (tiny change)
+
+       poll: fix poll(0, NULL, msec)
+       * lib/poll.c: don't exit early if NULL is the 1st arg to poll(),
+       but nfd is 0.  In that case poll should behave like select.
+
+2012-09-13  Joachim Schmitz <jojo@schmitz-digital.de>  (tiny change)
+           Paolo Bonzini <bonzini@gnu.org>
+
+       poll: fix for systems that can't recv() on a non-socket
+       * lib/poll.c: if recv returns ENOTSOCK, assume the descriptor
+       is readable.  In this case POLLHUP will not be supported.
+       * doc/posix-functions/poll.texi: Document this.
+
+2012-09-13  Paolo Bonzini  <bonzini@gnu.org>
+
+       poll/select: document portability problems not fixed by Gnulib.
+       * doc/posix-functions/poll.texi: poll does not work well on
+       pipes under Windows.  It has the same limitations as select on
+       BeOS.
+       * doc/posix-functions/select.texi: select does not work well
+       on pipes under Windows.
+
+2012-09-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fcntl-h: check for AIX 7.1 bug with O_NOFOLLOW and O_CREAT
+       * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Check for AIX 7.1 bug
+       that caused a GNU tar test failure.  Problem reported by Jez Wain; see
+       <http://lists.gnu.org/archive/html/bug-tar/2012-07/msg00018.html>.
+
 2012-09-06  Eric Blake  <eblake@redhat.com>
 
        net_if: give more details about the bug being fixed