diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-02-01 17:06:45 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-02-01 17:06:45 +0000 |
commit | 566efee21908cc59bb0645c3208446f3dedebce8 (patch) | |
tree | 48fa72b2b59511164d37b754bdf49c7c403729c3 /nss | |
parent | 6a844df675b81d6b9057db066446943792ba89fc (diff) | |
download | glibc-566efee21908cc59bb0645c3208446f3dedebce8.tar glibc-566efee21908cc59bb0645c3208446f3dedebce8.tar.gz glibc-566efee21908cc59bb0645c3208446f3dedebce8.tar.bz2 glibc-566efee21908cc59bb0645c3208446f3dedebce8.zip |
Update.
1998-02-02 01:12 Ulrich Drepper <drepper@cygnus.com>
* libc.map: Add _h_errno.
* inet/herrno.c: Make _h_errno weak alias.
* login/Makefile (distribute): Add pty-internal.h.
* nscd/Makefile (distribute): Add all the files missing.
* signal/allocrtsig.c: Fix problem with recognizing whether RT sigs
are available.
* stdio-common/tstscanf.c: Rewrite a bit to continue after errors
and report status at the end.
* sysdeps/unix/sysv/linux/syscalls.list: Add lchown.
* sysdeps/unix/sysv/linux/i386/sysdep.S: Make errno an initialized
variable.
* sysdeps/unix/sysv/linux/powerpc/sysdep.c: Add alias _errno for errno.
* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S: Likewise.
1998-01-03 20:47 Mark Kettenis <kettenis@phys.uva.nl>
* configure.in: Fix --enable-add-ons code.
1998-02-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* elf/rtld.c (dl_main): Allow ":" as separator for LD_PRELOAD. Patch
by Rudolf Leitgeb <leitgeb@leland.stanford.edu>.
[PR libc/441]
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Use first
occurence in cache. Reported by Rudolf Leitgeb
<leitgeb@leland.stanford.edu>.
[PR libc/440]
1998-02-01 21:18 Ulrich Drepper <drepper@cygnus.com>
* libio/iovsscanf.c: Set errno to 0 before calling _IO_vfscanf so
that it never is EINTR (which is tested for in _IO_vfscanf).
* Makefile.in: Call sub-make with CVSOPTS.
* elf/Makefile (distribute): Add dl-procinfo.h.
* sysdeps/unix/sysv/linux/alpha/Dist: Add rt_sigaction.S.
1998-02-01 15:54 Ulrich Drepper <drepper@cygnus.com>
* version.h (VERSION): Bump to 2.0.92.
1998-01-31 Phil Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/siglist.c (_sys_siglist): Additional weak
alias for __new_sys_siglist.
thread and not pthread_detach.
Diffstat (limited to 'nss')
-rw-r--r-- | nss/getXXbyYY_r.c | 12 | ||||
-rw-r--r-- | nss/getXXent_r.c | 14 |
2 files changed, 25 insertions, 1 deletions
diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c index d20fa34498..a4dc0011a2 100644 --- a/nss/getXXbyYY_r.c +++ b/nss/getXXbyYY_r.c @@ -152,6 +152,18 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, status = (*fct) (ADD_VARIABLES, resbuf, buffer, buflen, __errno_location () H_ERRNO_VAR); + /* The the status is NSS_STATUS_TRYAGAIN and errno is ERANGE the + provided buffer is too small. In this case we should give + the user the possibility to enlarge the buffer and we should + not simply go on with the next service (even if the TRYAGAIN + action tells us so). */ + if (status == NSS_STATUS_TRYAGAIN +#ifdef NEED_H_ERRNO + && *h_errnop == NETDB_INTERNAL +#endif + && errno == ERANGE) + break; + no_more = __nss_next (&nip, REENTRANT_NAME_STRING, (void **) &fct, status, 0); } diff --git a/nss/getXXent_r.c b/nss/getXXent_r.c index 1884b0773d..aa21b6fe7c 100644 --- a/nss/getXXent_r.c +++ b/nss/getXXent_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -249,6 +249,18 @@ INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen, status = (*fct) (resbuf, buffer, buflen, __errno_location () H_ERRNO_VAR); + /* The the status is NSS_STATUS_TRYAGAIN and errno is ERANGE the + provided buffer is too small. In this case we should give + the user the possibility to enlarge the buffer and we should + not simply go on with the next service (even if the TRYAGAIN + action tells us so). */ + if (status == NSS_STATUS_TRYAGAIN +#ifdef NEED_H_ERRNO + && *h_errnop == NETDB_INTERNAL +#endif + && errno == ERANGE) + break; + no_more = __nss_next (&nip, GETFUNC_NAME_STRING, (void **) &fct, status, 0); |