mirror of
https://github.com/sudo-project/sudo.git
synced 2025-09-01 23:05:17 +00:00
Allow '@', '(', ')', ':' in arguments to a defaults variable
w/o requiring that they be quoted.
This commit is contained in:
13
parse.lex
13
parse.lex
@@ -101,6 +101,7 @@ OCTET (1?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5])
|
|||||||
DOTTEDQUAD {OCTET}(\.{OCTET}){3}
|
DOTTEDQUAD {OCTET}(\.{OCTET}){3}
|
||||||
HOSTNAME [[:alnum:]_-]+
|
HOSTNAME [[:alnum:]_-]+
|
||||||
WORD ([^#@!=:,\(\) \t\n\\]|\\[^\n])+
|
WORD ([^#@!=:,\(\) \t\n\\]|\\[^\n])+
|
||||||
|
ENVAR ([^#!=, \t\n\\]|\\[^\n])([^#=, \t\n\\]|\\[^\n])*
|
||||||
DEFVAR [a-z_]+
|
DEFVAR [a-z_]+
|
||||||
|
|
||||||
/* XXX - convert GOTRUNAS to exclusive state (GOTDEFS cannot be) */
|
/* XXX - convert GOTRUNAS to exclusive state (GOTDEFS cannot be) */
|
||||||
@@ -147,6 +148,12 @@ DEFVAR [a-z_]+
|
|||||||
fill(yytext + 1, yyleng - 2);
|
fill(yytext + 1, yyleng - 2);
|
||||||
return(WORD);
|
return(WORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{ENVAR} {
|
||||||
|
LEXTRACE("WORD(2) ");
|
||||||
|
fill(yytext, yyleng);
|
||||||
|
return(WORD);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<GOTCMND>{
|
<GOTCMND>{
|
||||||
@@ -261,7 +268,7 @@ PASSWD[[:blank:]]*: {
|
|||||||
<GOTRUNAS>(#[0-9-]+|{WORD}) {
|
<GOTRUNAS>(#[0-9-]+|{WORD}) {
|
||||||
/* username/uid that user can run command as */
|
/* username/uid that user can run command as */
|
||||||
fill(yytext, yyleng);
|
fill(yytext, yyleng);
|
||||||
LEXTRACE("WORD(2) ");
|
LEXTRACE("WORD(3) ");
|
||||||
return(WORD);
|
return(WORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,10 +289,10 @@ PASSWD[[:blank:]]*: {
|
|||||||
}
|
}
|
||||||
} /* a pathname */
|
} /* a pathname */
|
||||||
|
|
||||||
<INITIAL,GOTDEFS,INDEFS>{WORD} {
|
<INITIAL,GOTDEFS>{WORD} {
|
||||||
/* a word */
|
/* a word */
|
||||||
fill(yytext, yyleng);
|
fill(yytext, yyleng);
|
||||||
LEXTRACE("WORD(3) ");
|
LEXTRACE("WORD(4) ");
|
||||||
return(WORD);
|
return(WORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user