Home | History | Annotate | Download | only in newgrp

Lines Matching defs:groups

59 free_groups(void *groups)
64 free(groups);
69 alloc_groups(int *ngroups, gid_t **groups, int *ngroupsmax)
75 *groups = malloc(*ngroupsmax * sizeof(**groups));
76 if (*groups == NULL)
79 *ngroups = getgroups(*ngroupsmax, *groups);
81 free_groups(*groups);
88 addgid(gid_t *groups, int ngroups, int ngroupsmax, gid_t gid, int makespace)
93 for (i = 0; i < ngroups && groups[i] != gid; i++)
99 groups[ngroups++] = gid;
105 * would if we passed the larger groups array.
119 if (groups[i] != pgid)
123 groups[i] = gid;
131 if (setgroups(ngroups, groups) < 0)
142 gid_t *groups;
149 rval = alloc_groups(&ngroups, &groups, &ngroupsmax);
169 rval = addgid(groups, ngroups, ngroupsmax, newgid, makespace);
185 for (i = 0; i < ngroups && groups[i] != newgid; i++)
191 groups[i] = groups[i + 1];
193 rval = addgid(groups, ngroups, ngroupsmax, oldgid, makespace);
196 free_groups(groups);
212 gid_t *groups;
238 if (alloc_groups(&ngroups, &groups, &ngroupsmax) == ADDGRP_NOERROR) {
241 if (groups[i] == grp->gr_gid) {
242 free_groups(groups);
245 free_groups(groups);
249 * Check the group membership list in case the groups[] array