=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/sudo/Attic/parse.c,v retrieving revision 1.18.2.1 retrieving revision 1.19 diff -c -r1.18.2.1 -r1.19 *** src/usr.bin/sudo/Attic/parse.c 2009/02/22 21:56:44 1.18.2.1 --- src/usr.bin/sudo/Attic/parse.c 2008/07/31 16:44:03 1.19 *************** *** 90,96 **** #endif /* HAVE_EXTENDED_GLOB */ #ifndef lint ! __unused static const char rcsid[] = "$Sudo: parse.c,v 1.160.2.15 2007/12/04 15:26:40 millert Exp $"; #endif /* lint */ /* --- 90,96 ---- #endif /* HAVE_EXTENDED_GLOB */ #ifndef lint ! __unused static const char rcsid[] = "$Sudo: parse.c,v 1.160.2.16 2008/02/09 14:44:48 millert Exp $"; #endif /* lint */ /* *************** *** 198,203 **** --- 198,218 ---- /* * User was granted access to cmnd on host as user. */ + #ifdef HAVE_SELINUX + /* Set role and type if not specified on command line. */ + if (user_role == NULL) { + if (match[top-1].role != NULL) + user_role = match[top-1].role; + else + user_role = def_role; + } + if (user_type == NULL) { + if (match[top-1].type != NULL) + user_type = match[top-1].type; + else + user_type = def_type; + } + #endif set_perms(PERM_ROOT); return(VALIDATE_OK | (no_passwd == TRUE ? FLAG_NOPASS : 0) | *************** *** 606,616 **** /* * If the user has a supplementary group vector, check it first. */ ! if (strcmp(user, user_name) == 0) { ! for (i = 0; i < user_ngroups; i++) { ! if (grp->gr_gid == user_groups[i]) ! return(TRUE); ! } } if (grp->gr_mem != NULL) { for (cur = grp->gr_mem; *cur; cur++) { --- 621,629 ---- /* * If the user has a supplementary group vector, check it first. */ ! for (i = 0; i < user_ngroups; i++) { ! if (grp->gr_gid == user_groups[i]) ! return(TRUE); } if (grp->gr_mem != NULL) { for (cur = grp->gr_mem; *cur; cur++) {