* grp/initgroups.c (internal_getgrouplist): Don't prematurely

abort if there is no initgroups_dyn function.
This commit is contained in:
Ulrich Drepper 2008-10-30 16:55:44 +00:00
parent 21b07d8ba5
commit 332c4465b0
3 changed files with 7 additions and 9 deletions

View File

@ -1,5 +1,8 @@
2008-10-30 Ulrich Drepper <drepper@redhat.com>
* grp/initgroups.c (internal_getgrouplist): Don't prematurely
abort if there is no initgroups_dyn function.
* resolv/res_send.c (send_dg): On timeout, only return nonzero
result if any of the queries really provided an answer.

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1989,91,93,1996-2005,2006 Free Software Foundation, Inc.
/* Copyright (C) 1989,91,93,1996-2005,2006,2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -94,13 +94,8 @@ internal_getgrouplist (const char *user, gid_t group, long int *size,
fct = __nss_lookup_function (nip, "initgroups_dyn");
if (fct == NULL)
{
status = compat_call (nip, user, group, &start, size, groupsp,
limit, &errno);
if (nss_next_action (nip, NSS_STATUS_UNAVAIL) != NSS_ACTION_CONTINUE)
break;
}
status = compat_call (nip, user, group, &start, size, groupsp,
limit, &errno);
else
status = DL_CALL_FCT (fct, (user, group, &start, size, groupsp,
limit, &errno));

View File

@ -1008,7 +1008,7 @@ send_dg(res_state statp,
}
if (n == 0) {
Dprint(statp->options & RES_DEBUG, (stdout, ";; timeout\n"));
if (recvresp1 > 1 || (buf2 != NULL && recvresp2 > 1))
if (resplen > 1 && (recvresp1 || (buf2 != NULL && recvresp2)))
{
*resplen2 = 1;
return resplen;