1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-01 10:06:57 +03:00
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.
This commit is contained in:
Ulrich Drepper
1999-03-14 21:12:49 +00:00
parent cb9245ba93
commit 336dfb2d27
8 changed files with 64 additions and 13 deletions

View File

@ -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> 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 * locale/programs/localedef.c (main): Initialize `cat' to please
the compiler. the compiler.

View 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. This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997. Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997.
@ -19,6 +19,7 @@
#include <assert.h> #include <assert.h>
#include <errno.h> #include <errno.h>
#include <fcntl.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <sys/socket.h> #include <sys/socket.h>
@ -83,6 +84,8 @@ setutent_daemon (void)
if (daemon_sock < 0) if (daemon_sock < 0)
{ {
int result;
daemon_sock = open_socket (_PATH_UTMPD_RW); daemon_sock = open_socket (_PATH_UTMPD_RW);
if (daemon_sock < 0) if (daemon_sock < 0)
{ {
@ -91,6 +94,16 @@ setutent_daemon (void)
if (daemon_sock < 0) if (daemon_sock < 0)
return 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. */ /* Send request to the daemon. */

View 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 extent of the file; a positive count specifies a position past the
current end. If you set the position past the current end, and 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 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 The return value from @code{lseek} is normally the resulting file
position, measured in bytes from the beginning of the file. position, measured in bytes from the beginning of the file.

View 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) if (__read (sock, resultbuf->gr_mem[0], total_len) != total_len)
{ {
__close (sock); __close (sock);
/* The `errno' to some value != ERANGE. */
__set_errno (ENOENT);
return -1; return -1;
} }
@ -216,6 +218,8 @@ nscd_getgr_r (const char *key, size_t keylen, request_type type,
else else
{ {
__close (sock); __close (sock);
/* The `errno' to some value != ERANGE. */
__set_errno (ENOENT);
return -1; return -1;
} }
} }

View File

@ -299,6 +299,8 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type,
*h_errnop = hst_resp.error; *h_errnop = hst_resp.error;
__close (sock); __close (sock);
/* The `errno' to some value != ERANGE. */
__set_errno (ENOENT);
return -1; return -1;
} }
} }

View File

@ -177,6 +177,8 @@ nscd_getpw_r (const char *key, size_t keylen, request_type type,
else else
{ {
__close (sock); __close (sock);
/* The `errno' to some value != ERANGE. */
__set_errno (ENOENT);
return -1; return -1;
} }
} }

View 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. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com> Contributed by Ulrich Drepper <drepper@cygnus.com>
and Paul Janzen <pcj@primenet.com>, 1996. and Paul Janzen <pcj@primenet.com>, 1996.
@ -114,6 +114,7 @@ setutent_file (void)
if (file_fd < 0) if (file_fd < 0)
{ {
const char *file_name; const char *file_name;
int result;
file_name = TRANSFORM_UTMP_FILE_NAME (__libc_utmp_file_name); file_name = TRANSFORM_UTMP_FILE_NAME (__libc_utmp_file_name);
@ -125,6 +126,16 @@ setutent_file (void)
if (file_fd == -1) if (file_fd == -1)
return 0; 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); __lseek (file_fd, 0, SEEK_SET);

View 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. This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998. Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998.
@ -64,20 +64,14 @@ __getpt (void)
fd = __open (buf, O_RDWR); fd = __open (buf, O_RDWR);
if (fd != -1) if (fd != -1)
{ return fd;
if (__isatty (fd))
return fd;
__close (fd); if (errno == ENOENT)
continue;
}
if (errno != EIO)
return -1; return -1;
} }
} }
__set_errno (ENFILE); __set_errno (ENOENT);
return -1; return -1;
} }
weak_alias (__getpt, getpt) weak_alias (__getpt, getpt)