errno: use consistently
authorEric Blake <ebb9@byu.net>
Wed, 2 Sep 2009 23:06:43 +0000 (17:06 -0600)
committerEric Blake <ebb9@byu.net>
Thu, 3 Sep 2009 02:37:41 +0000 (20:37 -0600)
* lib/c-stack.c (ENOTSUP): <errno.h> guarantees a definition.
* lib/canonicalize-lgpl.c (ENAMETOOLONG): Likewise.
* lib/canonicalize.c (ELOOP): Likewise.
* lib/inet_ntop.c (EAFNOSUPPORT): Likewise.
* lib/inet_pton.c (EAFNOSUPPORT): Likewise.
* lib/lchown.c (EOPNOTSUPP): Likewise.
* lib/openat-priv.h (ENOSYS, EOPNOTSUPP): Likewise.
* lib/savewd.c (ESTALE): Likewise.
* lib/settime.c (ENOSYS): Likewise.
* lib/utimens.c (ENOSYS): Likewise.
* lib/xgethostname.c (ENAMETOOLONG): Likewise.
* lib/chdir-safer.c (ELOOP): Likewise.
(chdir_no_follow): Use HAVE_READLINK, not ELOOP, as witness.
* modules/c-stack (Depends-on): Add errno.
* modules/canonicalize (Depends-on): Likewise.
* modules/chdir-safer (Depends-on): Likewise.
* modules/fdopendir (Depends-on): Likewise.
* modules/inet_ntop (Depends-on): Likewise.
* modules/inet_pton (Depends-on): Likewise.
* modules/lchown (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* modules/settime (Depends-on): Likewise.
* m4/chdir-safer.m4 (gl_CHDIR_SAFER): Check for readlink.

Signed-off-by: Eric Blake <ebb9@byu.net>
25 files changed:
ChangeLog
lib/c-stack.c
lib/canonicalize-lgpl.c
lib/canonicalize.c
lib/chdir-safer.c
lib/inet_ntop.c
lib/inet_pton.c
lib/lchown.c
lib/openat-priv.h
lib/savewd.c
lib/settime.c
lib/utimens.c
lib/xgethostname.c
m4/chdir-safer.m4
modules/c-stack
modules/canonicalize
modules/chdir-safer
modules/fdopendir
modules/inet_ntop
modules/inet_pton
modules/lchown
modules/openat
modules/savewd
modules/settime
modules/utimens

index 1f8d5e8..4eeb067 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,31 @@
 2009-09-02  Eric Blake  <ebb9@byu.net>
 
+       errno: use consistently
+       * lib/c-stack.c (ENOTSUP): <errno.h> guarantees a definition.
+       * lib/canonicalize-lgpl.c (ENAMETOOLONG): Likewise.
+       * lib/canonicalize.c (ELOOP): Likewise.
+       * lib/inet_ntop.c (EAFNOSUPPORT): Likewise.
+       * lib/inet_pton.c (EAFNOSUPPORT): Likewise.
+       * lib/lchown.c (EOPNOTSUPP): Likewise.
+       * lib/openat-priv.h (ENOSYS, EOPNOTSUPP): Likewise.
+       * lib/savewd.c (ESTALE): Likewise.
+       * lib/settime.c (ENOSYS): Likewise.
+       * lib/utimens.c (ENOSYS): Likewise.
+       * lib/xgethostname.c (ENAMETOOLONG): Likewise.
+       * lib/chdir-safer.c (ELOOP): Likewise.
+       (chdir_no_follow): Use HAVE_READLINK, not ELOOP, as witness.
+       * modules/c-stack (Depends-on): Add errno.
+       * modules/canonicalize (Depends-on): Likewise.
+       * modules/chdir-safer (Depends-on): Likewise.
+       * modules/fdopendir (Depends-on): Likewise.
+       * modules/inet_ntop (Depends-on): Likewise.
+       * modules/inet_pton (Depends-on): Likewise.
+       * modules/lchown (Depends-on): Likewise.
+       * modules/openat (Depends-on): Likewise.
+       * modules/savewd (Depends-on): Likewise.
+       * modules/settime (Depends-on): Likewise.
+       * m4/chdir-safer.m4 (gl_CHDIR_SAFER): Check for readlink.
+
        fts: avoid leaking fds
        * modules/fts (Depends-on): Add cloexec.
        * lib/fts.c (opendirat, diropen, fts_build): Set close-on-exec
index d260b47..1dddeef 100644 (file)
@@ -46,9 +46,6 @@
 #define _(msgid) gettext (msgid)
 
 #include <errno.h>
-#ifndef ENOTSUP
-# define ENOTSUP EINVAL
-#endif
 
 #include <signal.h>
 #if ! HAVE_STACK_T && ! defined stack_t
index 3aaa310..6b5663a 100644 (file)
@@ -1,5 +1,5 @@
 /* Return the canonical absolute name of a given file.
-   Copyright (C) 1996-2003, 2005-2008 Free Software Foundation, Inc.
+   Copyright (C) 1996-2003, 2005-2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
@@ -50,9 +50,6 @@
 #include <errno.h>
 #ifndef _LIBC
 # define __set_errno(e) errno = (e)
-# ifndef ENAMETOOLONG
-#  define ENAMETOOLONG EINVAL
-# endif
 #endif
 
 #ifdef _LIBC
index 3744654..523e082 100644 (file)
@@ -38,9 +38,6 @@
 #include "xalloc.h"
 #include "xgetcwd.h"
 
-#ifndef ELOOP
-# define ELOOP 0
-#endif
 #ifndef __set_errno
 # define __set_errno(Val) errno = (Val)
 #endif
index 03f3720..a6f77b0 100644 (file)
@@ -1,6 +1,6 @@
 /* much like chdir(2), but safer
 
-   Copyright (C) 2005-2006, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2008-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -29,8 +29,8 @@
 #include <sys/stat.h>
 #include "same-inode.h"
 
-#ifndef ELOOP
-# define ELOOP 0
+#ifndef HAVE_READLINK
+# define HAVE_READLINK 0
 #endif
 
 /* Like chdir, but fail if DIR is a symbolic link to a directory (or
@@ -51,9 +51,9 @@ chdir_no_follow (char const *dir)
      they are the same file; if they are different files, set errno to
      ELOOP (the same value that open uses for symlinks with
      O_NOFOLLOW) so the caller can report a failure.
-     Skip this check if ELOOP == 0, which should be the case
+     Skip this check if HAVE_READLINK == 0, which should be the case
      on any system that lacks symlink support.  */
-  if (ELOOP && ! HAVE_WORKING_O_NOFOLLOW)
+  if (HAVE_READLINK && ! HAVE_WORKING_O_NOFOLLOW)
     {
       struct stat sb1;
       result = lstat (dir, &sb1);
index 16eb109..033847a 100644 (file)
@@ -1,6 +1,6 @@
 /* inet_ntop.c -- convert IPv4 and IPv6 addresses from binary to text form
 
-   Copyright (C) 2005, 2006, 2008  Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006, 2008, 2009  Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #include <string.h>
 #include <errno.h>
 
-#ifndef EAFNOSUPPORT
-# define EAFNOSUPPORT EINVAL
-#endif
-
 #define NS_IN6ADDRSZ 16
 #define NS_INT16SZ 2
 
index 62ef145..a9c9baf 100644 (file)
@@ -1,6 +1,6 @@
 /* inet_pton.c -- convert IPv4 and IPv6 addresses from text to binary form
 
-   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2008, 2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #include <string.h>
 #include <errno.h>
 
-#ifndef EAFNOSUPPORT
-# define EAFNOSUPPORT EINVAL
-#endif
-
 #define NS_INADDRSZ 4
 #define NS_IN6ADDRSZ 16
 #define NS_INT16SZ 2
index 5bc7074..10ba1c9 100644 (file)
 #include <errno.h>
 #include <sys/stat.h>
 
-/* Some systems don't have EOPNOTSUPP.  */
-#ifndef EOPNOTSUPP
-# ifdef ENOTSUP
-#  define EOPNOTSUPP ENOTSUP
-# else
-/* Some systems don't have ENOTSUP either.  */
-#  define EOPNOTSUPP EINVAL
-# endif
-#endif
-
 /* Work just like chown, except when FILE is a symbolic link.
    In that case, set errno to EOPNOTSUPP and return -1.
    But if autoconf tests determined that chown modifies
index 9254f6b..2280416 100644 (file)
@@ -1,6 +1,6 @@
 /* Internals for openat-like functions.
 
-   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #define OPENAT_BUFFER_SIZE 512
 char *openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file);
 
-/* Some systems don't have ENOSYS.  */
-#ifndef ENOSYS
-# ifdef ENOTSUP
-#  define ENOSYS ENOTSUP
-# else
-/* Some systems don't have ENOTSUP either.  */
-#  define ENOSYS EINVAL
-# endif
-#endif
-
-/* Some systems don't have EOPNOTSUPP.  */
-#ifndef EOPNOTSUPP
-# ifdef ENOTSUP
-#  define EOPNOTSUPP ENOTSUP
-# else
-/* Some systems don't have ENOTSUP either.  */
-#  define EOPNOTSUPP EINVAL
-# endif
-#endif
-
 /* Trying to access a BUILD_PROC_NAME file will fail on systems without
    /proc support, and even on systems *with* ProcFS support.  Return
    nonzero if the failure may be legitimate, e.g., because /proc is not
index c4893ef..f593f94 100644 (file)
@@ -1,6 +1,6 @@
 /* Save and restore the working directory, possibly using a child process.
 
-   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #include "dirname.h"
 #include "fcntl-safer.h"
 
-#ifndef ESTALE
-# define ESTALE -1
-#endif
-
 /* Save the working directory into *WD, if it hasn't been saved
    already.  Return true if a child has been forked to do the real
    work.  */
index f565492..366a298 100644 (file)
@@ -1,6 +1,6 @@
 /* settime -- set the system clock
 
-   Copyright (C) 2002, 2004, 2005, 2006, 2007 Free Software
+   Copyright (C) 2002, 2004, 2005, 2006, 2007, 2009 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
 
 #include <errno.h>
 
-/* Some systems don't have ENOSYS.  */
-#ifndef ENOSYS
-# ifdef ENOTSUP
-#  define ENOSYS ENOTSUP
-# else
-/* Some systems don't have ENOTSUP either.  */
-#  define ENOSYS EINVAL
-# endif
-#endif
-
 /* Set the system time.  */
 
 int
index 708de10..f7bc75e 100644 (file)
@@ -1,7 +1,7 @@
 /* Set file access and modification times.
 
-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Free Software
-   Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free
+   Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
@@ -44,16 +44,6 @@ struct utimbuf
 };
 #endif
 
-/* Some systems don't have ENOSYS.  */
-#ifndef ENOSYS
-# ifdef ENOTSUP
-#  define ENOSYS ENOTSUP
-# else
-/* Some systems don't have ENOTSUP either.  */
-#  define ENOSYS EINVAL
-# endif
-#endif
-
 #ifndef __attribute__
 # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
 #  define __attribute__(x)
index 875d497..d649b8d 100644 (file)
@@ -1,7 +1,7 @@
 /* xgethostname.c -- return current hostname with unlimited length
 
-   Copyright (C) 1992, 1996, 2000, 2001, 2003, 2004, 2005, 2006 Free
-   Software Foundation, Inc.
+   Copyright (C) 1992, 1996, 2000, 2001, 2003, 2004, 2005, 2006, 2009
+   Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 #include "xalloc.h"
 
-#ifndef ENAMETOOLONG
-# define ENAMETOOLONG 0
-#endif
-
 #ifndef INITIAL_HOSTNAME_LENGTH
 # define INITIAL_HOSTNAME_LENGTH 34
 #endif
index 22ad506..d6e741d 100644 (file)
@@ -1,5 +1,5 @@
-#serial 3
-dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+#serial 4
+dnl Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,4 +7,5 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_CHDIR_SAFER],
 [
   AC_LIBOBJ([chdir-safer])
+  AC_CHECK_FUNCS_ONCE([readlink])
 ])
index 6a589c3..22dd18c 100644 (file)
@@ -8,6 +8,7 @@ m4/c-stack.m4
 
 Depends-on:
 gettext-h
+errno
 exitfail
 unistd
 raise
index 23baa75..e24be3d 100644 (file)
@@ -9,6 +9,7 @@ m4/canonicalize.m4
 
 Depends-on:
 areadlink-with-size
+errno
 file-set
 filenamecat
 hash-triple
index b3b47e1..39cfdc7 100644 (file)
@@ -7,6 +7,7 @@ lib/chdir-safer.c
 m4/chdir-safer.m4
 
 Depends-on:
+errno
 fchdir
 fcntl-h
 open
index 7a90aa3..83c2af7 100644 (file)
@@ -8,8 +8,9 @@ lib/openat-proc.c
 m4/fdopendir.m4
 
 Depends-on:
-extensions
 dirent
+errno
+extensions
 fchdir
 openat-die
 save-cwd
index 98df38e..76ff39d 100644 (file)
@@ -9,6 +9,7 @@ Depends-on:
 socklen
 sys_socket
 arpa_inet
+errno
 netinet_in
 extensions
 
index 173710a..314bf0f 100644 (file)
@@ -10,6 +10,7 @@ c-ctype
 socklen
 sys_socket
 arpa_inet
+errno
 netinet_in
 extensions
 
index e011e2b..65c084c 100644 (file)
@@ -7,6 +7,7 @@ m4/lchown.m4
 
 Depends-on:
 chown
+errno
 sys_stat
 unistd
 
index 5c326a0..3ea5b4d 100644 (file)
@@ -16,6 +16,7 @@ m4/mode_t.m4
 
 Depends-on:
 dirname
+errno
 extensions
 fchdir
 fdopendir
index 360d4b9..6d655c1 100644 (file)
@@ -8,6 +8,7 @@ m4/savewd.m4
 
 Depends-on:
 dirname
+errno
 exit
 fchdir
 fcntl-safer
index 9ca84a0..f88318e 100644 (file)
@@ -7,6 +7,7 @@ m4/settime.m4
 
 Depends-on:
 clock-time
+errno
 extensions
 sys_time
 timespec
index caf8805..4251485 100644 (file)
@@ -9,6 +9,7 @@ m4/utimens.m4
 m4/utimes.m4
 
 Depends-on:
+errno
 sys_time
 time