sudo_ldap_build_pass1()
{
struct group *grp;
- gid_t *grplist=NULL;
- int ngrps;
int i;
char *b=NULL;
ncat(&b,&sz,")");
}
- /* handle arbitrary number of groups */
- if (0<(ngrps=getgroups(0,NULL))){
- grplist=calloc(ngrps,sizeof(gid_t));
- if (grplist!=NULL && (0<getgroups(ngrps,grplist)))
- for(i=0;i<ngrps;i++){
- if((grp=sudo_getgrgid(grplist[i]))!=NULL){
- ncat(&b,&sz,"(sudoUser=%");
- ncat(&b,&sz,grp->gr_name);
- ncat(&b,&sz,")");
- }
- }
+ /* Append supplementary groups */
+ for(i=0;i<user_ngroups;i++){
+ if((grp=sudo_getgrgid(user_groups[i]))!=NULL){
+ ncat(&b,&sz,"(sudoUser=%");
+ ncat(&b,&sz,grp->gr_name);
+ ncat(&b,&sz,")");
+ }
}
-
/* Add ALL to list */
ncat(&b,&sz,"(sudoUser=ALL)");