]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 14 Mar 1999 21:12:49 +0000 (21:12 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 14 Mar 1999 21:12:49 +0000 (21:12 +0000)
1999-03-13  Mark Kettenis  <kettenis@gnu.org>

* sysdeps/unix/bsd/getpt.c (__getpt): Do not use `isatty' to check
if the opened master pty really is a pty.  `isatty' checks for
tty-ness and a pty is not a tty.  Return ENOENT instead of ENFILE
if we are out of pty's.

1999-03-13  Mark Kettenis  <kettenis@gnu.org>

* sysdeps/generic/utmp_file.c (setutent_file): Make sure the just
opened file is closed on exec.
* login/utmp_daemon.c (setutent_daemon): Likewise for the just
opened socket.

1999-03-13  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

* manual/llio.texi (File Position Primitive): Reformat @end
command.  Patch by Bruno Haible <haible@ilog.fr> [PR libc/1020].

* nscd/nscd_getpw_r.c (nscd_getpw_r): Set `errno' correctly if no
entry is found.
* nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
* nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.

ChangeLog
login/utmp_daemon.c
manual/llio.texi
nscd/nscd_getgr_r.c
nscd/nscd_gethst_r.c
nscd/nscd_getpw_r.c
sysdeps/generic/utmp_file.c
sysdeps/unix/bsd/getpt.c

index 4e4ce5df1693afe9c2095ad06c938945a2bc2e30..03e2623e3dd7a5d23874c46582be1fd49246b32a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,29 @@
+1999-03-13  Mark Kettenis  <kettenis@gnu.org>
+
+       * sysdeps/unix/bsd/getpt.c (__getpt): Do not use `isatty' to check
+       if the opened master pty really is a pty.  `isatty' checks for
+       tty-ness and a pty is not a tty.  Return ENOENT instead of ENFILE
+       if we are out of pty's.
+
+1999-03-13  Mark Kettenis  <kettenis@gnu.org>
+
+       * sysdeps/generic/utmp_file.c (setutent_file): Make sure the just
+       opened file is closed on exec.
+       * login/utmp_daemon.c (setutent_daemon): Likewise for the just
+       opened socket.
+
+1999-03-13  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+       * manual/llio.texi (File Position Primitive): Reformat @end
+       command.  Patch by Bruno Haible <haible@ilog.fr> [PR libc/1020].
+
 1999-03-14  Ulrich Drepper  <drepper@cygnus.com>
 
+       * nscd/nscd_getpw_r.c (nscd_getpw_r): Set `errno' correctly if no
+       entry is found.
+       * nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
+       * nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
+
        * locale/programs/localedef.c (main): Initialize `cat' to please
        the compiler.
 
index 95e5d4241b700adb0c05c178fc94393aa59e6ced..148a4729007c89d453703eacd149533ebd2cf8c8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997.
 
@@ -19,6 +19,7 @@
 
 #include <assert.h>
 #include <errno.h>
+#include <fcntl.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/socket.h>
@@ -83,6 +84,8 @@ setutent_daemon (void)
 
   if (daemon_sock < 0)
     {
+      int result;
+
       daemon_sock = open_socket (_PATH_UTMPD_RW);
       if (daemon_sock < 0)
        {
@@ -91,6 +94,16 @@ setutent_daemon (void)
          if (daemon_sock < 0)
            return 0;
        }
+
+      /* We have to make sure the socket is `closed on exec'.  */
+      result = __fcntl (daemon_sock, F_GETFD, 0);
+      if (result >= 0)
+       result = __fcntl (daemon_sock, F_SETFD, flags | FD_CLOEXEC);
+      if (result == -1)
+       {
+         close (daemon_sock);
+         return 0;
+       }
     }
 
   /* Send request to the daemon.  */
index 2e497bf5125d97ae8101df06b982a10247f11c13..47f79a7f2016e5667b26f41806f3c0bb9e02af9c 100644 (file)
@@ -739,7 +739,8 @@ the file.  A negative count specifies a position within the current
 extent of the file; a positive count specifies a position past the
 current end.  If you set the position past the current end, and
 actually write data, you will extend the file with zeros up to that
-position.@end table
+position.
+@end table
 
 The return value from @code{lseek} is normally the resulting file
 position, measured in bytes from the beginning of the file.
index 7d2caac088bc4b30fef6981170bf3fd59092bab6..cb5a8d6050a4b4dee78ea219366af0f84969d9ab 100644 (file)
@@ -207,6 +207,8 @@ nscd_getgr_r (const char *key, size_t keylen, request_type type,
       if (__read (sock, resultbuf->gr_mem[0], total_len) != total_len)
        {
          __close (sock);
+         /* The `errno' to some value != ERANGE.  */
+         __set_errno (ENOENT);
          return -1;
        }
 
@@ -216,6 +218,8 @@ nscd_getgr_r (const char *key, size_t keylen, request_type type,
   else
     {
       __close (sock);
+      /* The `errno' to some value != ERANGE.  */
+      __set_errno (ENOENT);
       return -1;
     }
 }
index 46f1611c63f2731b5961c6021a2ae06ee352c14f..961f69538a0b44a7467a2f086fd509200f88b8c8 100644 (file)
@@ -299,6 +299,8 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type,
       *h_errnop = hst_resp.error;
 
       __close (sock);
+      /* The `errno' to some value != ERANGE.  */
+      __set_errno (ENOENT);
       return -1;
     }
 }
index 5050253bd2d7fb83d0f2d795790a5ed864c7ac35..e0600cb9de7e76c9ed4c111d6332554f6f01ff50 100644 (file)
@@ -177,6 +177,8 @@ nscd_getpw_r (const char *key, size_t keylen, request_type type,
   else
     {
       __close (sock);
+      /* The `errno' to some value != ERANGE.  */
+      __set_errno (ENOENT);
       return -1;
     }
 }
index ddf49467efea3b60248d47b043c79f5eb1a7af91..74e91fb94802d8b296ff0b11b126b9e4bdacae0d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>
    and Paul Janzen <pcj@primenet.com>, 1996.
@@ -114,6 +114,7 @@ setutent_file (void)
   if (file_fd < 0)
     {
       const char *file_name;
+      int result;
 
       file_name = TRANSFORM_UTMP_FILE_NAME (__libc_utmp_file_name);
 
@@ -125,6 +126,16 @@ setutent_file (void)
          if (file_fd == -1)
            return 0;
        }
+
+      /* We have to make sure the file is `closed on exec'.  */
+      result = __fcntl (file_fd, F_GETFD, 0);
+      if (result >= 0)
+       result = __fcntl (file_fd, F_SETFD, result | FD_CLOEXEC);
+      if (result == -1)
+       {
+         close (file_fd);
+         return 0;
+       }
     }
 
   __lseek (file_fd, 0, SEEK_SET);
index 55d87fa2bcbba56716a2aeb4c418126944114c9f..d8070972a5c4cd612b2f634cbfafd200865dbf18 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998.
 
@@ -64,20 +64,14 @@ __getpt (void)
 
          fd = __open (buf, O_RDWR);
          if (fd != -1)
-           {
-             if (__isatty (fd))
-               return fd;
+           return fd;
 
-             __close (fd);
-             continue;
-           }
-
-         if (errno != EIO)
+         if (errno == ENOENT)
            return -1;
        }
     }
 
-  __set_errno (ENFILE);
+  __set_errno (ENOENT);
   return -1;
 }
 weak_alias (__getpt, getpt)