SCCS-vsn: sys/kern/kern_prot.c 7.14
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)kern_prot.c 7.13 (Berkeley) %G%
+ * @(#)kern_prot.c 7.14 (Berkeley) %G%
int *retval;
{
register gid_t *gp;
int *retval;
{
register gid_t *gp;
- int error, ngrp, groups[NGROUPS];
+ int error, groups[NGROUPS];
if (error = suser(u.u_cred, &u.u_acflag))
return (error);
if (error = suser(u.u_cred, &u.u_acflag))
return (error);
- ngrp = uap->gidsetsize;
- if (ngrp > NGROUPS)
+ if ((ngrps = uap->gidsetsize) > NGROUPS)
- error = copyin((caddr_t)uap->gidset, (caddr_t)groups,
- uap->gidsetsize * sizeof (groups[0]));
- if (error)
+ if (error = copyin((caddr_t)uap->gidset, (caddr_t)groups,
+ ngrps * sizeof (groups[0])))
- gp = u.u_cred->cr_groups;
- for (lp = groups; lp < &groups[uap->gidsetsize]; )
- *gp++ = *lp++;
- u.u_cred->cr_ngroups = ngrp;
+ u.u_cred->cr_ngroups = ngrps;
+ /* convert from int's to gid_t's */
+ for (gp = u.u_cred->cr_groups, lp = groups; ngrps--; *gp++ = *lp++)
+ /* void */;