mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-01 10:06:57 +03:00
* grp/initgroups.c (internal_getgrouplist): Don't prematurely
abort if there is no initgroups_dyn function.
This commit is contained in:
@ -1,5 +1,8 @@
|
|||||||
2008-10-30 Ulrich Drepper <drepper@redhat.com>
|
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
|
* resolv/res_send.c (send_dg): On timeout, only return nonzero
|
||||||
result if any of the queries really provided an answer.
|
result if any of the queries really provided an answer.
|
||||||
|
|
||||||
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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");
|
fct = __nss_lookup_function (nip, "initgroups_dyn");
|
||||||
|
|
||||||
if (fct == NULL)
|
if (fct == NULL)
|
||||||
{
|
status = compat_call (nip, user, group, &start, size, groupsp,
|
||||||
status = compat_call (nip, user, group, &start, size, groupsp,
|
limit, &errno);
|
||||||
limit, &errno);
|
|
||||||
|
|
||||||
if (nss_next_action (nip, NSS_STATUS_UNAVAIL) != NSS_ACTION_CONTINUE)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
status = DL_CALL_FCT (fct, (user, group, &start, size, groupsp,
|
status = DL_CALL_FCT (fct, (user, group, &start, size, groupsp,
|
||||||
limit, &errno));
|
limit, &errno));
|
||||||
|
@ -1008,7 +1008,7 @@ send_dg(res_state statp,
|
|||||||
}
|
}
|
||||||
if (n == 0) {
|
if (n == 0) {
|
||||||
Dprint(statp->options & RES_DEBUG, (stdout, ";; timeout\n"));
|
Dprint(statp->options & RES_DEBUG, (stdout, ";; timeout\n"));
|
||||||
if (recvresp1 > 1 || (buf2 != NULL && recvresp2 > 1))
|
if (resplen > 1 && (recvresp1 || (buf2 != NULL && recvresp2)))
|
||||||
{
|
{
|
||||||
*resplen2 = 1;
|
*resplen2 = 1;
|
||||||
return resplen;
|
return resplen;
|
||||||
|
Reference in New Issue
Block a user