2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-22 09:57:41 +00:00

Fix error recovery in a privilege after a ':' separator.

This commit is contained in:
Todd C. Miller 2020-09-02 11:01:09 -06:00
parent fc563286ff
commit 578789c56f
2 changed files with 114 additions and 114 deletions

View File

@ -567,7 +567,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 75
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 285
#define YYLAST 287
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 62
@ -576,7 +576,7 @@ union yyalloc
/* YYNRULES -- Number of rules. */
#define YYNRULES 132
/* YYNSTATES -- Number of states. */
#define YYNSTATES 224
#define YYNSTATES 223
#define YYUNDEFTOK 2
#define YYMAXUTOK 307
@ -687,10 +687,10 @@ static const yytype_uint16 yytoknum[] =
};
# endif
#define YYPACT_NINF -99
#define YYPACT_NINF -101
#define yypact_value_is_default(Yystate) \
(!!((Yystate) == (-99)))
(!!((Yystate) == (-101)))
#define YYTABLE_NINF -4
@ -701,29 +701,29 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
136, 15, -99, -99, -99, -99, -2, 29, 43, 236,
221, 221, 10, -99, 75, 81, 90, 91, 247, -99,
47, 178, -99, -99, -99, 199, -99, -99, -99, -99,
-99, 8, 11, 55, 97, 16, -99, -99, -99, -99,
-99, -99, 253, -99, -99, 5, 18, 18, -99, -99,
-99, 86, 66, 76, 82, 98, -99, 59, -99, -99,
-99, 72, 101, 22, -99, 103, 35, -99, 108, 36,
-99, 116, 39, -99, -99, -99, -99, 221, 41, -99,
-18, 15, -99, 15, -99, 146, 147, 148, -99, 43,
-99, -99, 236, 16, 16, 16, -99, 149, 154, 155,
156, 49, -99, 10, 16, 236, 75, -99, 10, 81,
-99, 221, 90, -99, 221, 91, -99, -99, 195, -99,
115, -99, -99, -99, -99, -99, -99, -99, -99, -99,
-99, -99, -99, -99, -99, -99, -99, -99, 128, -99,
134, -99, 135, -99, 135, -99, 15, -99, 212, 138,
-99, -99, -99, 42, 131, 77, 115, -24, -99, -99,
-99, 83, 141, -99, -99, -99, 42, -99, 145, 150,
159, 160, 162, 169, 171, 177, 179, -99, -99, -99,
-99, -99, -99, -99, -99, -99, 102, -99, 42, 141,
175, 213, 215, 217, 223, 224, 225, 227, 228, -99,
-99, -99, -99, -99, -99, -99, -99, -99, -99, -99,
-99, -99, -99, -99, -99, -99, -99, -99, -99, -99,
-99, -99, -99, -99
75, 48, -101, -101, -101, -101, 0, 9, 76, 176,
180, 180, 12, -101, 34, 49, 70, 91, 210, -101,
80, 117, -101, -101, -101, 160, -101, -101, -101, -101,
-101, 10, 13, -1, 98, 20, -101, -101, -101, -101,
-101, -101, 217, -101, -101, 7, 73, 73, -101, -101,
-101, 139, 59, 82, 85, 86, -101, 136, -101, -101,
-101, 151, 89, 57, -101, 97, 60, -101, 103, 69,
-101, 108, 99, -101, -101, -101, -101, 180, 100, -101,
11, 48, -101, 48, -101, 138, 145, 163, -101, 76,
-101, -101, 176, 20, 20, 20, -101, 149, 171, 188,
193, 169, -101, 12, 20, 176, 34, -101, 12, 49,
-101, 180, 70, -101, 180, 91, -101, -101, 154, -101,
105, -101, -101, -101, -101, -101, -101, -101, -101, -101,
-101, -101, -101, -101, -101, -101, -101, -101, 134, -101,
166, -101, 167, -101, 167, -101, -101, -101, 170, 174,
-101, -101, 161, 178, -20, 105, 185, -101, -101, -101,
200, 186, -101, -101, -101, 161, -101, 177, 205, 206,
207, 208, 209, 212, 213, 214, -101, -101, -101, -101,
-101, -101, -101, -101, -101, 3, -101, 161, 186, 222,
239, 244, 245, 246, 247, 248, 249, 250, -101, -101,
-101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
-101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
-101, -101, -101
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@ -745,35 +745,35 @@ static const yytype_uint8 yydefact[] =
13, 0, 0, 11, 0, 0, 14, 116, 0, 10,
64, 21, 23, 28, 29, 30, 25, 103, 18, 16,
17, 45, 46, 47, 48, 50, 108, 19, 101, 100,
106, 105, 114, 113, 111, 110, 0, 32, 66, 34,
42, 71, 33, 70, 0, 67, 64, 81, 128, 130,
129, 0, 69, 124, 126, 65, 0, 43, 0, 0,
0, 0, 0, 0, 0, 0, 0, 72, 73, 76,
74, 75, 77, 78, 79, 80, 0, 127, 0, 68,
0, 0, 0, 0, 0, 0, 0, 0, 0, 82,
83, 84, 85, 86, 87, 88, 89, 90, 91, 94,
95, 92, 93, 44, 125, 56, 55, 61, 60, 62,
63, 57, 58, 59
106, 105, 114, 113, 111, 110, 33, 32, 66, 34,
42, 71, 70, 0, 67, 64, 81, 128, 130, 129,
0, 69, 124, 126, 65, 0, 43, 0, 0, 0,
0, 0, 0, 0, 0, 0, 72, 73, 76, 74,
75, 77, 78, 79, 80, 0, 127, 0, 68, 0,
0, 0, 0, 0, 0, 0, 0, 0, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 94, 95,
92, 93, 44, 125, 56, 55, 61, 60, 62, 63,
57, 58, 59
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-99, -99, -99, 220, -99, -99, -28, 157, -99, 129,
158, 206, -99, 107, 163, -99, -98, 201, -99, -99,
-99, -99, -99, -99, -99, -99, -99, -99, -99, -99,
-99, 214, -99, 161, -5, -99, 164, 166, -99, 151,
-99, 165, -10, 192, 252, 105, 84, 114, -29
-101, -101, -101, 240, -101, -101, 150, 173, -101, 142,
172, 221, -101, 110, 165, -101, -100, 211, -101, -101,
-101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
-101, 216, -101, 164, -7, -101, 162, 168, -101, 157,
-101, 175, -10, 192, 255, 109, 88, 118, -27
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 20, 21, 22, 23, 24, 35, 36, 78, 79,
43, 44, 149, 150, 56, 57, 58, 59, 177, 178,
179, 180, 181, 182, 183, 184, 185, 151, 154, 157,
186, 60, 63, 64, 80, 66, 67, 61, 72, 73,
69, 70, 25, 26, 27, 162, 163, 164, 30
43, 44, 149, 150, 56, 57, 58, 59, 176, 177,
178, 179, 180, 181, 182, 183, 184, 151, 153, 156,
185, 60, 63, 64, 80, 66, 67, 61, 72, 73,
69, 70, 25, 26, 27, 161, 162, 163, 30
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@ -781,68 +781,68 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
46, 47, 82, 84, 45, 136, 90, 31, 28, 81,
33, 28, 83, 48, 49, 28, 28, 93, 94, 95,
120, 92, 28, 33, 168, 169, 170, 171, 172, 173,
174, 175, 176, 104, 107, 28, 28, 110, 32, 28,
113, 28, 50, 116, 92, 34, 158, 75, 33, 119,
51, 159, 121, 29, 122, 89, 29, 77, 34, 106,
29, 29, 48, 49, 128, 129, 130, 29, 52, 53,
54, 55, 109, 112, 160, 137, 115, 33, 118, 62,
29, 29, 161, 34, 29, 65, 29, 158, 213, 48,
49, 50, 159, 85, 68, 71, 86, 87, 101, 51,
138, 142, 88, 97, 144, 48, 49, 52, 53, 54,
55, 103, 34, 98, 166, 160, 77, 152, 50, 99,
199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
209, 210, 211, 212, 50, 100, -2, 1, 155, 105,
2, 108, 51, 3, 4, 5, 111, 6, 7, 8,
9, 10, 11, 12, 114, 123, 124, 125, 148, 131,
52, 53, 54, 55, 132, 133, 134, 92, 13, 14,
15, 16, 17, 103, 77, 165, 18, 156, -3, 1,
188, 19, 2, 190, 215, 3, 4, 5, 191, 6,
7, 8, 9, 10, 11, 12, 146, 192, 193, 37,
194, 38, 39, 37, 40, 38, 39, 195, 40, 196,
13, 14, 15, 16, 17, 197, 2, 198, 18, 3,
4, 5, 216, 19, 217, 2, 218, 41, 3, 4,
5, 41, 219, 220, 221, 42, 222, 223, 77, 42,
37, 76, 38, 39, 13, 40, 126, 147, 91, 153,
127, 2, 18, 13, 3, 4, 5, 37, 102, 38,
39, 18, 40, 167, 135, 96, 145, 139, 41, 117,
74, 189, 214, 141, 140, 187, 42, 143, 0, 13,
0, 0, 0, 0, 0, 41
46, 47, 45, 136, 82, 84, 48, 49, 90, 31,
28, 81, 33, 28, 83, 48, 49, 165, 32, 77,
28, 198, 199, 200, 201, 202, 203, 204, 205, 206,
207, 208, 209, 210, 211, 50, 107, 85, 62, 110,
86, 87, 113, 51, 50, 116, 92, 34, 28, 120,
92, 119, 51, 65, 121, 29, 122, 28, 29, 89,
28, 52, 53, 54, 55, 29, 128, 129, 130, 28,
52, 53, 54, 55, 68, -2, 1, 137, 33, 2,
75, 33, 3, 4, 5, 212, 6, 7, 8, 9,
10, 11, 12, 29, 106, 71, 97, 109, 138, 28,
28, 142, 29, 88, 144, 29, 112, 13, 14, 15,
16, 17, 77, 34, 29, 18, 34, -3, 1, 98,
19, 2, 99, 100, 3, 4, 5, 105, 6, 7,
8, 9, 10, 11, 12, 108, 115, 118, 154, 48,
49, 111, 48, 49, 29, 29, 114, 123, 148, 13,
14, 15, 16, 17, 124, 146, 33, 18, 37, 131,
38, 39, 19, 40, 37, 157, 38, 39, 50, 40,
158, 50, 125, 92, 2, 101, 51, 3, 4, 5,
37, 132, 38, 39, 2, 40, 41, 3, 4, 5,
103, 34, 41, 159, 42, 93, 94, 95, 133, 77,
42, 160, 13, 134, 157, 103, 77, 152, 41, 158,
18, 104, 13, 155, 2, 189, 42, 3, 4, 5,
18, 37, 164, 38, 39, 187, 40, 52, 53, 54,
55, 214, 159, 167, 168, 169, 170, 171, 172, 173,
174, 175, 13, 190, 191, 192, 193, 194, 215, 41,
195, 196, 197, 216, 217, 218, 219, 220, 221, 222,
147, 76, 126, 91, 127, 166, 135, 96, 102, 117,
139, 141, 145, 74, 188, 213, 140, 0, 186, 0,
0, 0, 0, 0, 0, 0, 0, 143
};
static const yytype_int16 yycheck[] =
{
10, 11, 31, 32, 9, 103, 35, 9, 0, 1,
5, 0, 1, 3, 4, 0, 0, 45, 46, 47,
38, 39, 0, 5, 48, 49, 50, 51, 52, 53,
54, 55, 56, 61, 63, 0, 0, 66, 9, 0,
69, 0, 32, 72, 39, 40, 4, 0, 5, 78,
40, 9, 81, 45, 83, 39, 45, 39, 40, 37,
45, 45, 3, 4, 93, 94, 95, 45, 58, 59,
60, 61, 37, 37, 32, 104, 37, 5, 37, 4,
45, 45, 40, 40, 45, 4, 45, 4, 186, 3,
4, 32, 9, 38, 4, 4, 41, 42, 39, 40,
105, 111, 5, 37, 114, 3, 4, 58, 59, 60,
61, 39, 40, 37, 37, 32, 39, 146, 32, 37,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 37, 0, 1, 148, 38,
4, 38, 40, 7, 8, 9, 38, 11, 12, 13,
14, 15, 16, 17, 38, 9, 9, 9, 43, 10,
58, 59, 60, 61, 10, 10, 10, 39, 32, 33,
34, 35, 36, 39, 39, 44, 40, 39, 0, 1,
39, 45, 4, 38, 9, 7, 8, 9, 38, 11,
12, 13, 14, 15, 16, 17, 1, 38, 38, 4,
38, 6, 7, 4, 9, 6, 7, 38, 9, 38,
32, 33, 34, 35, 36, 38, 4, 38, 40, 7,
8, 9, 9, 45, 9, 4, 9, 32, 7, 8,
9, 32, 9, 9, 9, 40, 9, 9, 39, 40,
4, 21, 6, 7, 32, 9, 89, 118, 42, 37,
92, 4, 40, 32, 7, 8, 9, 4, 57, 6,
7, 40, 9, 156, 101, 51, 115, 106, 32, 77,
18, 166, 188, 109, 108, 161, 40, 112, -1, 32,
-1, -1, -1, -1, -1, 32
10, 11, 9, 103, 31, 32, 3, 4, 35, 9,
0, 1, 5, 0, 1, 3, 4, 37, 9, 39,
0, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 63, 38, 4, 66,
41, 42, 69, 40, 32, 72, 39, 40, 0, 38,
39, 78, 40, 4, 81, 45, 83, 0, 45, 39,
0, 58, 59, 60, 61, 45, 93, 94, 95, 0,
58, 59, 60, 61, 4, 0, 1, 104, 5, 4,
0, 5, 7, 8, 9, 185, 11, 12, 13, 14,
15, 16, 17, 45, 37, 4, 37, 37, 105, 0,
0, 111, 45, 5, 114, 45, 37, 32, 33, 34,
35, 36, 39, 40, 45, 40, 40, 0, 1, 37,
45, 4, 37, 37, 7, 8, 9, 38, 11, 12,
13, 14, 15, 16, 17, 38, 37, 37, 148, 3,
4, 38, 3, 4, 45, 45, 38, 9, 43, 32,
33, 34, 35, 36, 9, 1, 5, 40, 4, 10,
6, 7, 45, 9, 4, 4, 6, 7, 32, 9,
9, 32, 9, 39, 4, 39, 40, 7, 8, 9,
4, 10, 6, 7, 4, 9, 32, 7, 8, 9,
39, 40, 32, 32, 40, 45, 46, 47, 10, 39,
40, 40, 32, 10, 4, 39, 39, 37, 32, 9,
40, 61, 32, 39, 4, 38, 40, 7, 8, 9,
40, 4, 44, 6, 7, 39, 9, 58, 59, 60,
61, 9, 32, 48, 49, 50, 51, 52, 53, 54,
55, 56, 32, 38, 38, 38, 38, 38, 9, 32,
38, 38, 38, 9, 9, 9, 9, 9, 9, 9,
118, 21, 89, 42, 92, 155, 101, 51, 57, 77,
106, 109, 115, 18, 165, 187, 108, -1, 160, -1,
-1, -1, -1, -1, -1, -1, -1, 112
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@ -864,14 +864,14 @@ static const yytype_uint8 yystos[] =
38, 110, 110, 9, 9, 9, 69, 72, 110, 110,
110, 10, 10, 10, 10, 76, 78, 110, 96, 95,
99, 98, 104, 103, 104, 101, 1, 71, 43, 74,
75, 89, 110, 37, 90, 104, 39, 91, 4, 9,
32, 40, 107, 108, 109, 44, 37, 75, 48, 49,
50, 51, 52, 53, 54, 55, 56, 80, 81, 82,
83, 84, 85, 86, 87, 88, 92, 109, 39, 107,
38, 38, 38, 38, 38, 38, 38, 38, 38, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 78, 108, 9, 9, 9, 9, 9,
9, 9, 9, 9
75, 89, 37, 90, 104, 39, 91, 4, 9, 32,
40, 107, 108, 109, 44, 37, 75, 48, 49, 50,
51, 52, 53, 54, 55, 56, 80, 81, 82, 83,
84, 85, 86, 87, 88, 92, 109, 39, 107, 38,
38, 38, 38, 38, 38, 38, 38, 38, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 78, 108, 9, 9, 9, 9, 9, 9,
9, 9, 9
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@ -899,7 +899,7 @@ static const yytype_uint8 yyr2[] =
0, 2, 0, 1, 1, 2, 1, 2, 1, 1,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4,
3, 4, 3, 4, 1, 3, 1, 2, 3, 3,
3, 1, 3, 4, 3, 1, 2, 1, 1, 1,
3, 1, 3, 3, 3, 1, 2, 1, 1, 1,
1, 1, 1, 3, 4, 3, 3, 3, 3, 1,
3, 1, 2, 1, 2, 3, 3, 3, 3, 3,
3, 3, 3, 3, 0, 3, 0, 1, 3, 2,
@ -1846,7 +1846,7 @@ yyreduce:
#line 323 "gram.y" /* yacc.c:1652 */
{
yyerrok;
(yyval.privilege) = (yyvsp[-3].privilege);
(yyval.privilege) = (yyvsp[-2].privilege);
}
#line 1846 "gram.c" /* yacc.c:1652 */
break;

View File

@ -320,7 +320,7 @@ privileges : privilege
HLTQ_CONCAT($1, $3, entries);
$$ = $1;
}
| privileges ':' error eol {
| privileges ':' error {
yyerrok;
$$ = $1;
}