mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 08:43:19 -04:00
When a user is in more than 16 groups the call to authunix_create() will
result in abort() beeing called. This is because there is a limit of the number of groups in the RPC which is 16. When the actual number of groups is too large it results in xdr_array() returning an error which, in turn, authunix_create() handles by just calling abort(). Fix this by passing only the first 16 groups to authunix_create().
This commit is contained in:
parent
c3f2a836ad
commit
251bb62d63
1 changed files with 6 additions and 1 deletions
|
|
@ -231,12 +231,17 @@ set_auth(cl, xucred)
|
|||
CLIENT *cl;
|
||||
struct xucred *xucred;
|
||||
{
|
||||
int ngroups;
|
||||
|
||||
ngroups = xucred->cr_ngroups - 1;
|
||||
if (ngroups > NGRPS)
|
||||
ngroups = NGRPS;
|
||||
if (cl->cl_auth != NULL)
|
||||
cl->cl_auth->ah_ops->ah_destroy(cl->cl_auth);
|
||||
cl->cl_auth = authunix_create(hostname,
|
||||
xucred->cr_uid,
|
||||
xucred->cr_groups[0],
|
||||
xucred->cr_ngroups - 1,
|
||||
ngroups,
|
||||
&xucred->cr_groups[1]);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue