diff options
author | Andreas Schwab <schwab@redhat.com> | 2011-10-14 17:57:07 +0200 |
---|---|---|
committer | Andreas Schwab <schwab@redhat.com> | 2011-10-17 09:53:10 +0200 |
commit | 629f62ef0fbda8602cf796b24df79fb126f06851 (patch) | |
tree | 5f799fdff4ffa005c074cb72e4a7538e7b4d6a59 | |
parent | aa78043a4aafe5db1a1a76d544a833b63b4c5f5c (diff) | |
download | glibc-629f62ef0fbda8602cf796b24df79fb126f06851.tar.gz glibc-629f62ef0fbda8602cf796b24df79fb126f06851.tar.xz glibc-629f62ef0fbda8602cf796b24df79fb126f06851.zip |
Correctly handle missing initgroups database
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | grp/initgroups.c | 12 |
2 files changed, 9 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog index dfd6a3b08a..ab651ff3ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-10-17 Andreas Schwab <schwab@redhat.com> + + * grp/initgroups.c (internal_getgrouplist): Fix initgroups + database lookup. + 2011-10-16 Ulrich Drepper <drepper@gmail.com> * misc/sys/cdefs.h: Use leaf function attribute in __THROW. diff --git a/grp/initgroups.c b/grp/initgroups.c index 48119ff7f2..c63bba1388 100644 --- a/grp/initgroups.c +++ b/grp/initgroups.c @@ -82,9 +82,8 @@ internal_getgrouplist (const char *user, gid_t group, long int *size, if (__nss_initgroups_database == NULL) { - no_more = __nss_database_lookup ("initgroups", NULL, "", - &__nss_initgroups_database); - if (no_more == 0 && __nss_initgroups_database == NULL) + if (__nss_database_lookup ("initgroups", NULL, "", + &__nss_initgroups_database) < 0) { if (__nss_group_database == NULL) no_more = __nss_database_lookup ("group", NULL, "compat files", @@ -92,11 +91,8 @@ internal_getgrouplist (const char *user, gid_t group, long int *size, __nss_initgroups_database = __nss_group_database; } - else if (__nss_initgroups_database != NULL) - { - assert (no_more == 0); - use_initgroups_entry = true; - } + else + use_initgroups_entry = true; } else /* __nss_initgroups_database might have been set through |