Lines Matching refs:grps
148 gid_t *grps; in addgroup() local
190 if ((grps = malloc(sizeof(gid_t) * ngrps_max)) == NULL) in addgroup()
192 if ((ngrps = getgroups(ngrps_max, (gid_t *)grps)) < 0) { in addgroup()
198 if (grp->gr_gid != egid && inarray(grp->gr_gid, grps, ngrps)) { in addgroup()
200 if (grps[i] == grp->gr_gid) in addgroup()
203 memmove(&grps[i], &grps[i + 1], (ngrps - i) * sizeof(gid_t)); in addgroup()
205 if (setgroups(ngrps, (const gid_t *)grps) < 0) { in addgroup()
220 grps[0] = grp->gr_gid; in addgroup()
223 if (egid != grp->gr_gid && !inarray(egid, grps, ngrps)) { in addgroup()
227 grps[ngrps++] = egid; in addgroup()
229 if (setgroups(ngrps, (const gid_t *)grps)) { in addgroup()
238 free(grps); in addgroup()
242 inarray(gid_t gid, const gid_t grps[], int ngrps) in inarray() argument
247 if (grps[i] == gid) in inarray()