mirror of
https://github.com/sudo-project/sudo.git
synced 2025-09-01 06:45:10 +00:00
Use supplementary group vector in struct sudo_user.
This commit is contained in:
21
ldap.c
21
ldap.c
@@ -424,8 +424,6 @@ char *
|
|||||||
sudo_ldap_build_pass1()
|
sudo_ldap_build_pass1()
|
||||||
{
|
{
|
||||||
struct group *grp;
|
struct group *grp;
|
||||||
gid_t *grplist=NULL;
|
|
||||||
int ngrps;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
char *b=NULL;
|
char *b=NULL;
|
||||||
@@ -447,20 +445,15 @@ sudo_ldap_build_pass1()
|
|||||||
ncat(&b,&sz,")");
|
ncat(&b,&sz,")");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* handle arbitrary number of groups */
|
/* Append supplementary groups */
|
||||||
if (0<(ngrps=getgroups(0,NULL))){
|
for(i=0;i<user_ngroups;i++){
|
||||||
grplist=calloc(ngrps,sizeof(gid_t));
|
if((grp=sudo_getgrgid(user_groups[i]))!=NULL){
|
||||||
if (grplist!=NULL && (0<getgroups(ngrps,grplist)))
|
ncat(&b,&sz,"(sudoUser=%");
|
||||||
for(i=0;i<ngrps;i++){
|
ncat(&b,&sz,grp->gr_name);
|
||||||
if((grp=sudo_getgrgid(grplist[i]))!=NULL){
|
ncat(&b,&sz,")");
|
||||||
ncat(&b,&sz,"(sudoUser=%");
|
}
|
||||||
ncat(&b,&sz,grp->gr_name);
|
|
||||||
ncat(&b,&sz,")");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Add ALL to list */
|
/* Add ALL to list */
|
||||||
ncat(&b,&sz,"(sudoUser=ALL)");
|
ncat(&b,&sz,"(sudoUser=ALL)");
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user