diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-07-07 16:30:46 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-07-07 16:30:46 +0000 |
commit | 6333c255baf8ad9547c282b47fe5c35a40bca77d (patch) | |
tree | bbc8e29100fe7311de954f6b4f11c4e010f55b60 /grp/initgroups.c | |
parent | 0302fece014004a2df366dacc2b8e9416264a978 (diff) | |
download | glibc-6333c255baf8ad9547c282b47fe5c35a40bca77d.zip glibc-6333c255baf8ad9547c282b47fe5c35a40bca77d.tar.gz glibc-6333c255baf8ad9547c282b47fe5c35a40bca77d.tar.bz2 |
Update.
1998-07-07 16:28 Ulrich Drepper <drepper@cygnus.com>
* grp/initgroups.c: Handle directives from nsswitch.conf file.
Diffstat (limited to 'grp/initgroups.c')
-rw-r--r-- | grp/initgroups.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/grp/initgroups.c b/grp/initgroups.c index 454882e..d74d08d 100644 --- a/grp/initgroups.c +++ b/grp/initgroups.c @@ -182,12 +182,24 @@ initgroups (user, group) fct = __nss_lookup_function (nip, "initgroups"); if (fct == NULL) - status = compat_call (nip, user, group, &start, &size, groups, - limit, &errno); + { + status = compat_call (nip, user, group, &start, &size, groups, + limit, &errno); + + if (nss_next_action (nip, NSS_STATUS_UNAVAIL) != NSS_ACTION_CONTINUE) + break; + } else status = _CALL_DL_FCT (fct, (user, group, &start, &size, groups, limit, &errno)); + /* This is really only for debugging. */ + if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN) + __libc_fatal ("illegal status in " __FUNCTION__); + + if (nss_next_action (nip, status) == NSS_ACTION_RETURN) + break; + if (nip->next == NULL) no_more = -1; else |