- if (copyout((caddr_t)u.u_groups, (caddr_t)uap->gidset,
- uap->gidsetsize * sizeof (u.u_groups[0]))) {
- u.u_error = EFAULT;
+ for (lp = groups, gp = u.u_groups; lp < &groups[uap->gidsetsize]; )
+ *lp++ = *gp++;
+ u.u_error = copyout((caddr_t)groups, (caddr_t)uap->gidset,
+ uap->gidsetsize * sizeof (groups[0]));
+ if (u.u_error)