- // add the (nonlocal) user to the magic nonlocal users group
- buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
- buffer = malloc(buflen);
- if (buffer == NULL) {
- *errnop = ENOMEM;
- return NSS_STATUS_TRYAGAIN;
- }
- struct group nonlocal_users_group;
- status = get_local_group(MAGIC_NONLOCAL_GROUPNAME,
- &nonlocal_users_group, buffer, buflen, errnop);
- if (status == NSS_STATUS_NOTFOUND) {
- syslog(LOG_WARNING, "nss_nonlocal: (local) group %s does not exist!",
- MAGIC_NONLOCAL_GROUPNAME);
- }
- else if (status == NSS_STATUS_SUCCESS) {
- (*groupsp)[out++] = nonlocal_users_group.gr_gid;
- syslog(LOG_DEBUG, "nss_nonlocal: Added %s to special group %s",
- user, MAGIC_NONLOCAL_GROUPNAME);
- }
- free(buffer);
-