Skip to content

Commit

Permalink
Update.
Browse files Browse the repository at this point in the history
2002-08-27  Ulrich Drepper  <drepper@redhat.com>

	* nss/getXXbyYY_r.c (REENTRANT_NAME): If no service is available
	set h_errno to NO_RECOVERY [PR libc/4360].
  • Loading branch information
Ulrich Drepper committed Aug 27, 2002
1 parent b50f387 commit b2ab1f5
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
2002-08-27 Ulrich Drepper <drepper@redhat.com>

* nss/getXXbyYY_r.c (REENTRANT_NAME): If no service is available
set h_errno to NO_RECOVERY [PR libc/4360].

2002-08-26 Ulrich Drepper <drepper@redhat.com>

* libio/Makefile (tests): Add bug-fopena+.
Expand Down
13 changes: 13 additions & 0 deletions nss/getXXbyYY_r.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

#include <assert.h>
#include <errno.h>
#include <stdbool.h>
#include "nsswitch.h"
#ifdef USE_NSCD
# include <nscd/nscd_proto.h>
Expand Down Expand Up @@ -135,6 +136,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
#ifdef USE_NSCD
int nscd_status;
#endif
#ifdef NEED_H_ERRNO
bool any_service = false;
#endif

#ifdef PREPROCESS
PREPROCESS;
Expand Down Expand Up @@ -203,6 +207,10 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,

while (no_more == 0)
{
#ifdef NEED_H_ERRNO
any_service = true;
#endif

status = DL_CALL_FCT (fct, (ADD_VARIABLES, resbuf, buffer, buflen,
&errno H_ERRNO_VAR));

Expand All @@ -226,6 +234,11 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
done:
#endif
*result = status == NSS_STATUS_SUCCESS ? resbuf : NULL;
#ifdef NEED_H_ERRNO
if (status != NSS_STATUS_SUCCESS && ! any_service)
/* We were not able to use any service. */
*h_errnop = NO_RECOVERY;
#endif
#ifdef POSTPROCESS
POSTPROCESS;
#endif
Expand Down

0 comments on commit b2ab1f5

Please sign in to comment.