/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header: /home/cvs/courtesan/sudo/Attic/lex.yy.c,v 1.46.2.8 2007/08/25 02:48:01 millert Exp $
+ * $Header: /home/cvs/courtesan/sudo/Attic/lex.yy.c,v 1.46.2.9 2008/02/09 14:44:47 millert Exp $
*/
#define FLEX_SCANNER
#include <sudo.tab.h>
#ifndef lint
-__unused static const char rcsid[] = "$Sudo: lex.yy.c,v 1.46.2.8 2007/08/25 02:48:01 millert Exp $";
+__unused static const char rcsid[] = "$Sudo: lex.yy.c,v 1.46.2.9 2008/02/09 14:44:47 millert Exp $";
#endif /* lint */
#undef yywrap /* guard against a yywrap macro */
if (strcmp(yytext, "ALL") == 0) {
LEXTRACE("ALL ");
return(ALL);
- } else {
- fill(yytext, yyleng);
- LEXTRACE("ALIAS ");
- return(ALIAS);
}
+#ifdef HAVE_SELINUX
+ /* XXX - restrict type/role to initial state */
+ if (strcmp(yytext, "TYPE") == 0) {
+ LEXTRACE("TYPE ");
+ return(TYPE);
+ }
+ if (strcmp(yytext, "ROLE") == 0) {
+ LEXTRACE("ROLE ");
+ return(ROLE);
+ }
+#endif /* HAVE_SELINUX */
+ fill(yytext, yyleng);
+ LEXTRACE("ALIAS ");
+ return(ALIAS);
}
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 336 "parse.lex"
+#line 346 "parse.lex"
{
/* username/uid that user can run command as */
fill(yytext, yyleng);
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 343 "parse.lex"
+#line 353 "parse.lex"
{
BEGIN INITIAL;
++sudolineno;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 350 "parse.lex"
+#line 360 "parse.lex"
{
BEGIN INITIAL;
}
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 354 "parse.lex"
+#line 364 "parse.lex"
{
BEGIN GOTCMND;
LEXTRACE("COMMAND ");
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 360 "parse.lex"
+#line 370 "parse.lex"
{
/* directories can't have args... */
if (yytext[yyleng - 1] == '/') {
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 373 "parse.lex"
+#line 383 "parse.lex"
{
/* a word */
fill(yytext, yyleng);
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 380 "parse.lex"
+#line 390 "parse.lex"
{
LEXTRACE(", ");
return(',');
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 385 "parse.lex"
+#line 395 "parse.lex"
{
LEXTRACE("= ");
return('=');
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 390 "parse.lex"
+#line 400 "parse.lex"
{
LEXTRACE(": ");
return(':');
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 395 "parse.lex"
+#line 405 "parse.lex"
{
if (yyleng % 2 == 1)
return('!'); /* return '!' */
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 400 "parse.lex"
+#line 410 "parse.lex"
{
BEGIN INITIAL;
++sudolineno;
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 407 "parse.lex"
+#line 417 "parse.lex"
{ /* throw away space/tabs */
sawspace = TRUE; /* but remember for fill_args */
}
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 411 "parse.lex"
+#line 421 "parse.lex"
{
sawspace = TRUE; /* remember for fill_args */
++sudolineno;
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 417 "parse.lex"
+#line 427 "parse.lex"
{
BEGIN INITIAL;
++sudolineno;
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 424 "parse.lex"
+#line 434 "parse.lex"
{
LEXTRACE("ERROR ");
return(ERROR);
case YY_STATE_EOF(STARTDEFS):
case YY_STATE_EOF(INDEFS):
case YY_STATE_EOF(INSTR):
-#line 429 "parse.lex"
+#line 439 "parse.lex"
{
if (YY_START != INITIAL) {
BEGIN INITIAL;
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 438 "parse.lex"
+#line 448 "parse.lex"
ECHO;
YY_BREAK
-#line 2247 "lex.yy.c"
+#line 2257 "lex.yy.c"
case YY_END_OF_BUFFER:
{
return 0;
}
#endif
-#line 438 "parse.lex"
+#line 448 "parse.lex"
static void
_fill(src, len, olen)