Return NSS_STATUS_TRYAGAIN if we run out of memory. */
static NSS_STATUS fill_grent(struct group *result, struct winbindd_gr *gr,
- char *gr_mem, char **buffer, size_t *buflen)
+ const char *gr_mem, char **buffer, size_t *buflen)
{
char *name;
int i;
/* Group membership */
- if ((gr->num_gr_mem < 0) || !gr_mem) {
+ if (!gr_mem) {
gr->num_gr_mem = 0;
}
continue;
}
+ /* Skip groups without a mapping */
+ if (gid_list[i] == (uid_t)-1) {
+ continue;
+ }
+
/* Filled buffer ? If so, resize. */
if (*start == *size) {