summaryrefslogtreecommitdiffstats
path: root/sys/i386/ibcs2/ibcs2_misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i386/ibcs2/ibcs2_misc.c')
-rw-r--r--sys/i386/ibcs2/ibcs2_misc.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/i386/ibcs2/ibcs2_misc.c b/sys/i386/ibcs2/ibcs2_misc.c
index 6d25937..c537100 100644
--- a/sys/i386/ibcs2/ibcs2_misc.c
+++ b/sys/i386/ibcs2/ibcs2_misc.c
@@ -663,9 +663,13 @@ ibcs2_getgroups(td, uap)
u_int i, ngrp;
int error;
- if (uap->gidsetsize < 0)
- return (EINVAL);
- ngrp = MIN(uap->gidsetsize, ngroups_max + 1);
+ if (uap->gidsetsize < td->td_ucred->cr_ngroups) {
+ if (uap->gidsetsize == 0)
+ ngrp = 0;
+ else
+ return (EINVAL);
+ } else
+ ngrp = td->td_ucred->cr_ngroups;
gp = malloc(ngrp * sizeof(*gp), M_TEMP, M_WAITOK);
error = kern_getgroups(td, &ngrp, gp);
if (error)
OpenPOWER on IntegriCloud