Cope with a comment on the last line of the file with no newline.
Bug #623
This commit is contained in:
@@ -312,45 +312,45 @@ static yyconst short int yy_accept[814] =
|
|||||||
{ 0,
|
{ 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 68, 55, 63, 62, 61, 54,
|
0, 0, 0, 0, 68, 55, 63, 62, 61, 54,
|
||||||
66, 34, 56, 57, 34, 58, 55, 55, 55, 55,
|
65, 34, 56, 57, 34, 58, 55, 55, 55, 55,
|
||||||
60, 59, 66, 46, 46, 46, 46, 46, 46, 46,
|
60, 59, 66, 46, 46, 46, 46, 46, 46, 46,
|
||||||
46, 46, 46, 66, 55, 55, 63, 66, 46, 46,
|
46, 46, 46, 66, 55, 55, 63, 65, 46, 46,
|
||||||
46, 46, 46, 2, 66, 1, 55, 46, 46, 55,
|
46, 46, 46, 2, 66, 1, 55, 46, 46, 55,
|
||||||
17, 16, 17, 16, 16, 66, 66, 66, 3, 9,
|
17, 16, 17, 16, 16, 66, 65, 66, 3, 9,
|
||||||
8, 9, 4, 9, 5, 66, 13, 13, 13, 11,
|
8, 9, 4, 9, 5, 66, 13, 13, 13, 11,
|
||||||
12, 66, 19, 19, 18, 18, 18, 19, 18, 18,
|
12, 66, 19, 19, 18, 18, 18, 19, 18, 18,
|
||||||
18, 19, 19, 19, 19, 19, 18, 19, 19, 55,
|
18, 19, 19, 19, 19, 19, 18, 19, 19, 55,
|
||||||
|
|
||||||
0, 63, 61, 0, 65, 0, 55, 36, 0, 34,
|
0, 63, 61, 65, 65, 0, 55, 36, 0, 34,
|
||||||
0, 35, 0, 53, 53, 0, 55, 55, 0, 55,
|
0, 35, 0, 53, 53, 0, 55, 55, 0, 55,
|
||||||
55, 55, 55, 0, 39, 46, 46, 46, 46, 46,
|
55, 55, 55, 0, 39, 46, 46, 46, 46, 46,
|
||||||
46, 46, 46, 46, 46, 46, 46, 55, 64, 55,
|
46, 46, 46, 46, 46, 46, 46, 55, 64, 55,
|
||||||
55, 63, 0, 0, 0, 0, 0, 0, 55, 55,
|
55, 63, 0, 0, 0, 0, 0, 65, 55, 55,
|
||||||
55, 55, 55, 2, 1, 0, 1, 47, 47, 0,
|
55, 55, 55, 2, 1, 0, 1, 47, 47, 0,
|
||||||
55, 17, 17, 15, 14, 15, 0, 0, 3, 9,
|
55, 17, 17, 15, 14, 15, 0, 0, 3, 9,
|
||||||
0, 6, 7, 9, 9, 13, 0, 13, 13, 0,
|
0, 6, 7, 9, 9, 13, 0, 13, 13, 0,
|
||||||
10, 36, 0, 0, 35, 19, 19, 0, 19, 0,
|
10, 36, 0, 0, 35, 19, 19, 0, 19, 0,
|
||||||
0, 18, 18, 18, 18, 18, 18, 19, 19, 46,
|
0, 18, 18, 18, 18, 18, 18, 19, 19, 46,
|
||||||
|
|
||||||
19, 19, 19, 19, 19, 19, 19, 0, 0, 0,
|
19, 19, 19, 19, 19, 19, 19, 65, 65, 0,
|
||||||
36, 55, 55, 55, 55, 55, 0, 0, 39, 39,
|
36, 55, 55, 55, 55, 55, 0, 0, 39, 39,
|
||||||
46, 41, 46, 46, 46, 46, 46, 46, 46, 46,
|
46, 41, 46, 46, 46, 46, 46, 46, 46, 46,
|
||||||
46, 46, 46, 46, 55, 55, 0, 0, 0, 0,
|
46, 46, 46, 46, 55, 55, 0, 0, 0, 0,
|
||||||
0, 0, 55, 55, 55, 55, 55, 0, 55, 10,
|
0, 65, 55, 55, 55, 55, 55, 0, 55, 10,
|
||||||
0, 0, 0, 18, 18, 18, 19, 19, 19, 19,
|
0, 0, 0, 18, 18, 18, 19, 19, 19, 19,
|
||||||
19, 19, 19, 19, 19, 19, 19, 0, 55, 55,
|
19, 19, 19, 19, 19, 19, 19, 65, 55, 55,
|
||||||
55, 55, 55, 55, 0, 40, 40, 40, 0, 0,
|
55, 55, 55, 55, 0, 40, 40, 40, 0, 0,
|
||||||
39, 39, 39, 39, 39, 39, 39, 46, 46, 46,
|
39, 39, 39, 39, 39, 39, 39, 46, 46, 46,
|
||||||
46, 46, 46, 46, 46, 46, 46, 42, 46, 43,
|
46, 46, 46, 46, 46, 46, 46, 42, 46, 43,
|
||||||
|
|
||||||
55, 55, 55, 55, 0, 0, 0, 0, 0, 0,
|
55, 55, 55, 55, 0, 0, 0, 0, 0, 65,
|
||||||
55, 55, 55, 55, 0, 0, 0, 0, 0, 18,
|
55, 55, 55, 55, 0, 0, 0, 0, 0, 18,
|
||||||
18, 19, 46, 19, 19, 19, 19, 19, 19, 19,
|
18, 19, 46, 19, 19, 19, 19, 19, 19, 19,
|
||||||
19, 19, 19, 55, 55, 55, 0, 0, 40, 40,
|
19, 19, 19, 55, 55, 55, 0, 0, 40, 40,
|
||||||
40, 0, 39, 39, 0, 39, 39, 39, 39, 39,
|
40, 0, 39, 39, 0, 39, 39, 39, 39, 39,
|
||||||
39, 39, 39, 39, 39, 39, 0, 27, 46, 46,
|
39, 39, 39, 39, 39, 39, 0, 27, 46, 46,
|
||||||
46, 46, 46, 46, 46, 46, 44, 46, 55, 55,
|
46, 46, 46, 46, 46, 46, 44, 46, 55, 55,
|
||||||
55, 55, 55, 0, 0, 0, 0, 55, 55, 55,
|
55, 55, 55, 0, 0, 0, 65, 55, 55, 55,
|
||||||
0, 0, 0, 18, 18, 46, 46, 19, 19, 19,
|
0, 0, 0, 18, 18, 46, 46, 19, 19, 19,
|
||||||
19, 19, 19, 19, 19, 19, 19, 19, 55, 55,
|
19, 19, 19, 19, 19, 19, 19, 19, 55, 55,
|
||||||
|
|
||||||
@@ -358,7 +358,7 @@ static yyconst short int yy_accept[814] =
|
|||||||
0, 0, 39, 39, 39, 39, 39, 39, 39, 39,
|
0, 0, 39, 39, 39, 39, 39, 39, 39, 39,
|
||||||
39, 39, 39, 39, 39, 46, 46, 46, 46, 46,
|
39, 39, 39, 39, 39, 46, 46, 46, 46, 46,
|
||||||
46, 46, 46, 46, 48, 49, 50, 51, 55, 0,
|
46, 46, 46, 46, 48, 49, 50, 51, 55, 0,
|
||||||
0, 0, 55, 55, 55, 0, 0, 0, 0, 0,
|
0, 65, 55, 55, 55, 0, 0, 0, 0, 0,
|
||||||
46, 46, 19, 46, 19, 19, 19, 19, 19, 19,
|
46, 46, 19, 46, 19, 19, 19, 19, 19, 19,
|
||||||
19, 19, 19, 37, 37, 37, 0, 0, 39, 39,
|
19, 19, 19, 37, 37, 37, 0, 0, 39, 39,
|
||||||
39, 39, 39, 39, 39, 0, 0, 0, 0, 0,
|
39, 39, 39, 39, 39, 0, 0, 0, 0, 0,
|
||||||
@@ -366,12 +366,12 @@ static yyconst short int yy_accept[814] =
|
|||||||
39, 39, 39, 39, 46, 46, 46, 0, 26, 46,
|
39, 39, 39, 39, 46, 46, 46, 0, 26, 46,
|
||||||
|
|
||||||
46, 46, 46, 0, 25, 0, 28, 55, 0, 0,
|
46, 46, 46, 0, 25, 0, 28, 55, 0, 0,
|
||||||
0, 55, 55, 55, 37, 37, 37, 46, 46, 46,
|
65, 55, 55, 55, 37, 37, 37, 46, 46, 46,
|
||||||
46, 19, 19, 19, 55, 37, 37, 37, 37, 0,
|
46, 19, 19, 19, 55, 37, 37, 37, 37, 0,
|
||||||
39, 0, 39, 39, 39, 39, 39, 39, 39, 39,
|
39, 0, 39, 39, 39, 39, 39, 39, 39, 39,
|
||||||
39, 39, 39, 0, 0, 0, 39, 39, 39, 39,
|
39, 39, 39, 0, 0, 0, 39, 39, 39, 39,
|
||||||
39, 39, 39, 39, 39, 39, 39, 39, 39, 46,
|
39, 39, 39, 39, 39, 39, 39, 39, 39, 46,
|
||||||
46, 46, 46, 46, 46, 46, 52, 0, 0, 0,
|
46, 46, 46, 46, 46, 46, 52, 0, 0, 65,
|
||||||
55, 22, 47, 0, 37, 37, 37, 37, 46, 46,
|
55, 22, 47, 0, 37, 37, 37, 37, 46, 46,
|
||||||
46, 46, 19, 19, 19, 38, 38, 38, 38, 39,
|
46, 46, 19, 19, 19, 38, 38, 38, 38, 39,
|
||||||
0, 0, 0, 39, 39, 39, 39, 39, 39, 39,
|
0, 0, 0, 39, 39, 39, 39, 39, 39, 39,
|
||||||
@@ -379,23 +379,23 @@ static yyconst short int yy_accept[814] =
|
|||||||
39, 39, 39, 39, 39, 39, 0, 0, 0, 0,
|
39, 39, 39, 39, 39, 39, 0, 0, 0, 0,
|
||||||
0, 39, 39, 39, 39, 39, 39, 39, 39, 46,
|
0, 39, 39, 39, 39, 39, 39, 39, 39, 46,
|
||||||
46, 46, 46, 46, 0, 24, 0, 29, 0, 22,
|
46, 46, 46, 46, 0, 24, 0, 29, 0, 22,
|
||||||
0, 0, 55, 0, 55, 38, 38, 38, 38, 46,
|
65, 65, 55, 0, 55, 38, 38, 38, 38, 46,
|
||||||
46, 46, 46, 55, 55, 38, 38, 38, 38, 0,
|
46, 46, 46, 55, 55, 38, 38, 38, 38, 0,
|
||||||
0, 0, 0, 0, 39, 39, 39, 39, 39, 39,
|
0, 0, 0, 0, 39, 39, 39, 39, 39, 39,
|
||||||
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
|
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
|
||||||
39, 39, 39, 39, 45, 0, 32, 46, 46, 46,
|
39, 39, 39, 39, 45, 0, 32, 46, 46, 46,
|
||||||
0, 0, 0, 20, 0, 23, 22, 0, 0, 0,
|
0, 65, 65, 20, 65, 23, 22, 0, 0, 0,
|
||||||
0, 0, 22, 0, 0, 0, 38, 38, 38, 38,
|
0, 0, 22, 0, 0, 0, 38, 38, 38, 38,
|
||||||
|
|
||||||
46, 46, 46, 55, 55, 55, 0, 0, 0, 39,
|
46, 46, 46, 55, 55, 55, 0, 0, 0, 39,
|
||||||
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
|
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
|
||||||
39, 39, 39, 39, 39, 39, 39, 0, 30, 46,
|
39, 39, 39, 39, 39, 39, 39, 0, 30, 46,
|
||||||
46, 23, 0, 0, 22, 0, 0, 0, 46, 46,
|
46, 23, 65, 0, 22, 0, 0, 0, 46, 46,
|
||||||
55, 55, 55, 55, 55, 0, 0, 0, 0, 0,
|
55, 55, 55, 55, 55, 0, 0, 0, 0, 0,
|
||||||
39, 39, 39, 39, 39, 39, 39, 39, 0, 33,
|
39, 39, 39, 39, 39, 39, 39, 39, 0, 33,
|
||||||
46, 0, 0, 0, 0, 0, 0, 46, 55, 55,
|
46, 65, 0, 0, 0, 0, 0, 46, 55, 55,
|
||||||
55, 39, 39, 39, 39, 39, 39, 0, 31, 0,
|
55, 39, 39, 39, 39, 39, 39, 0, 31, 65,
|
||||||
0, 21, 0, 0, 0, 55, 55, 55, 55, 55,
|
65, 21, 0, 0, 0, 55, 55, 55, 55, 55,
|
||||||
39, 39, 39, 39, 39, 0, 0, 0, 0, 0,
|
39, 39, 39, 39, 39, 0, 0, 0, 0, 0,
|
||||||
|
|
||||||
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
|
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
|
||||||
@@ -3051,16 +3051,22 @@ case 65:
|
|||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 702 "toke.l"
|
#line 702 "toke.l"
|
||||||
{
|
{
|
||||||
BEGIN INITIAL;
|
if (sudoerstext[sudoersleng - 1] == '\n') {
|
||||||
sudolineno++;
|
/* comment ending in a newline */
|
||||||
continued = false;
|
BEGIN INITIAL;
|
||||||
|
sudolineno++;
|
||||||
|
continued = false;
|
||||||
|
} else if (!feof(yyin)) {
|
||||||
|
LEXTRACE("ERROR ");
|
||||||
|
LEXRETURN(ERROR);
|
||||||
|
}
|
||||||
LEXTRACE("#\n");
|
LEXTRACE("#\n");
|
||||||
LEXRETURN(COMMENT);
|
LEXRETURN(COMMENT);
|
||||||
} /* comment, not uid/gid */
|
} /* comment, not uid/gid */
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 66:
|
case 66:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 710 "toke.l"
|
#line 716 "toke.l"
|
||||||
{
|
{
|
||||||
LEXTRACE("ERROR ");
|
LEXTRACE("ERROR ");
|
||||||
LEXRETURN(ERROR);
|
LEXRETURN(ERROR);
|
||||||
@@ -3073,7 +3079,7 @@ case YY_STATE_EOF(STARTDEFS):
|
|||||||
case YY_STATE_EOF(INDEFS):
|
case YY_STATE_EOF(INDEFS):
|
||||||
case YY_STATE_EOF(INSTR):
|
case YY_STATE_EOF(INSTR):
|
||||||
case YY_STATE_EOF(WANTDIGEST):
|
case YY_STATE_EOF(WANTDIGEST):
|
||||||
#line 715 "toke.l"
|
#line 721 "toke.l"
|
||||||
{
|
{
|
||||||
if (YY_START != INITIAL) {
|
if (YY_START != INITIAL) {
|
||||||
BEGIN INITIAL;
|
BEGIN INITIAL;
|
||||||
@@ -3086,10 +3092,10 @@ case YY_STATE_EOF(WANTDIGEST):
|
|||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 67:
|
case 67:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 725 "toke.l"
|
#line 731 "toke.l"
|
||||||
ECHO;
|
ECHO;
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
#line 3092 "lex.sudoers.c"
|
#line 3098 "lex.sudoers.c"
|
||||||
|
|
||||||
case YY_END_OF_BUFFER:
|
case YY_END_OF_BUFFER:
|
||||||
{
|
{
|
||||||
@@ -3980,7 +3986,7 @@ int main()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#line 725 "toke.l"
|
#line 731 "toke.l"
|
||||||
|
|
||||||
struct path_list {
|
struct path_list {
|
||||||
SLIST_ENTRY(path_list) entries;
|
SLIST_ENTRY(path_list) entries;
|
||||||
|
@@ -699,10 +699,16 @@ sudoedit {
|
|||||||
continued = true;
|
continued = true;
|
||||||
} /* throw away EOL after \ */
|
} /* throw away EOL after \ */
|
||||||
|
|
||||||
<INITIAL,STARTDEFS,INDEFS>#(-[^\n0-9].*|[^\n0-9-].*)?\n {
|
<INITIAL,STARTDEFS,INDEFS>#(-[^\n0-9].*|[^\n0-9-].*)?\n? {
|
||||||
BEGIN INITIAL;
|
if (sudoerstext[sudoersleng - 1] == '\n') {
|
||||||
sudolineno++;
|
/* comment ending in a newline */
|
||||||
continued = false;
|
BEGIN INITIAL;
|
||||||
|
sudolineno++;
|
||||||
|
continued = false;
|
||||||
|
} else if (!feof(yyin)) {
|
||||||
|
LEXTRACE("ERROR ");
|
||||||
|
LEXRETURN(ERROR);
|
||||||
|
}
|
||||||
LEXTRACE("#\n");
|
LEXTRACE("#\n");
|
||||||
LEXRETURN(COMMENT);
|
LEXRETURN(COMMENT);
|
||||||
} /* comment, not uid/gid */
|
} /* comment, not uid/gid */
|
||||||
|
Reference in New Issue
Block a user