X-Git-Url: http://andersk.mit.edu/gitweb/nss_nonlocal.git/blobdiff_plain/4893970472bd815b8dbb6f6058dd26358700110e..23ca0ded6f524a412d868f5bdc5bd7c9b6b1cc4e:/nonlocal-group.c diff --git a/nonlocal-group.c b/nonlocal-group.c index 9bbe156..57f01e2 100644 --- a/nonlocal-group.c +++ b/nonlocal-group.c @@ -213,7 +213,7 @@ _nss_nonlocal_endgrent(void) enum nss_status status; const struct walk_nss w = { .lookup = &__nss_group_nonlocal_lookup, .fct_name = "endgrent", - .status = &status + .status = &status, .all_values = 1, }; const __typeof__(&_nss_nonlocal_endgrent) self = NULL; @@ -361,7 +361,7 @@ _nss_nonlocal_initgroups_dyn(const char *user, gid_t group, long int *start, enum nss_status status; const struct walk_nss w = { .lookup = &__nss_group_nonlocal_lookup, .fct_name = "initgroups_dyn", - .status = &status, .errnop = errnop + .status = &status, .all_values = 1, .errnop = errnop }; const __typeof__(&_nss_nonlocal_initgroups_dyn) self = NULL; @@ -450,7 +450,9 @@ _nss_nonlocal_initgroups_dyn(const char *user, gid_t group, long int *start, #define args (user, group, start, size, groupsp, limit, errnop) #include "walk_nss.h" #undef args - if (status != NSS_STATUS_SUCCESS) + if (status == NSS_STATUS_NOTFOUND || status == NSS_STATUS_UNAVAIL) + return NSS_STATUS_SUCCESS; + else if (status != NSS_STATUS_SUCCESS) return status; for (; in < *start; ++in) {