errno = old_errno;
return NSS_STATUS_TRYAGAIN;
}
- errno = 0;
ret = getgrgid_r(gid, gbufp, buf, buflen, &gbufp);
if (ret != 0) {
*errnop = old_errno;
errno = old_errno;
return NSS_STATUS_TRYAGAIN;
}
- errno = 0;
ret = getgrnam_r(name, gbufp, buf, len, &gbufp);
if (ret != 0) {
*errnop = old_errno;
int *errnop)
{
enum nss_status status;
+
+ char *nonlocal_ignore = getenv(NONLOCAL_IGNORE_ENV);
+ if (buflen == MAGIC_LOCAL_GR_BUFLEN ||
+ (nonlocal_ignore != NULL && nonlocal_ignore[0] != '\0'))
+ return NSS_STATUS_UNAVAIL;
+
if (grent_nip == NULL) {
status = _nss_nonlocal_setgrent(0);
if (status != NSS_STATUS_SUCCESS)
void *ptr;
} fct;
- if (buflen == MAGIC_LOCAL_GR_BUFLEN)
+ char *nonlocal_ignore = getenv(NONLOCAL_IGNORE_ENV);
+ if (buflen == MAGIC_LOCAL_GR_BUFLEN ||
+ (nonlocal_ignore != NULL && nonlocal_ignore[0] != '\0'))
return NSS_STATUS_UNAVAIL;
nip = nss_group_nonlocal_database();
void *ptr;
} fct;
- if (buflen == MAGIC_LOCAL_GR_BUFLEN)
+ char *nonlocal_ignore = getenv(NONLOCAL_IGNORE_ENV);
+ if (buflen == MAGIC_LOCAL_GR_BUFLEN ||
+ (nonlocal_ignore != NULL && nonlocal_ignore[0] != '\0'))
return NSS_STATUS_UNAVAIL;
nip = nss_group_nonlocal_database();