struct group gbuf;
int old_errno = errno;
- int buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
+ size_t buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
char *buf = malloc(buflen);
if (buf == NULL) {
*errnop = ENOMEM;
if (status != NSS_STATUS_SUCCESS)
return status;
+ if (strcmp(name, grp->gr_name) != 0) {
+ syslog(LOG_ERR, "nss_nonlocal: discarding group %s from lookup for group %s\n", grp->gr_name, name);
+ return NSS_STATUS_NOTFOUND;
+ }
+
return check_nonlocal_gid(name, grp->gr_gid, errnop);
}