diff options
author | dg <dg@FreeBSD.org> | 1995-11-04 10:50:55 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1995-11-04 10:50:55 +0000 |
commit | 7743b883df882227518d4fb681e3ba88cb8cecb9 (patch) | |
tree | 022446a2f349f5677cbcabaa50fe822b9e8b1062 /sys/kern/kern_prot.c | |
parent | 484ade7718e310f1744bd84a2e279513b21dc249 (diff) | |
download | FreeBSD-src-7743b883df882227518d4fb681e3ba88cb8cecb9.zip FreeBSD-src-7743b883df882227518d4fb681e3ba88cb8cecb9.tar.gz |
Return EINVAL if the number of groups is less than 1 in setgroups().
Obtained from: 4.4BSD-Lite2
Diffstat (limited to 'sys/kern/kern_prot.c')
-rw-r--r-- | sys/kern/kern_prot.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index abbc712..df70a19 100644 --- a/sys/kern/kern_prot.c +++ b/sys/kern/kern_prot.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_prot.c 8.6 (Berkeley) 1/21/94 - * $Id: kern_prot.c,v 1.12 1995/06/15 22:32:03 ache Exp $ + * $Id: kern_prot.c,v 1.13 1995/10/08 00:06:07 swallace Exp $ */ /* @@ -407,7 +407,8 @@ setgroups(p, uap, retval) if ((error = suser(pc->pc_ucred, &p->p_acflag))) return (error); - if ((ngrp = uap->gidsetsize) > NGROUPS) + ngrp = uap->gidsetsize; + if (ngrp < 1 || ngrp > NGROUPS) return (EINVAL); pc->pc_ucred = crcopy(pc->pc_ucred); if ((error = copyin((caddr_t)uap->gidset, |