mirror of
https://github.com/sudo-project/sudo.git
synced 2025-08-22 01:49:11 +00:00
Move handling of the "list" pseudo-command from lexer to parser.
The special handling of "list" in the lexer meant it could not be used as a user, group or host, which was unintentional. GitHub issue #246.
This commit is contained in:
parent
6c97b84c0c
commit
0197491e9c
@ -810,7 +810,7 @@ union yyalloc
|
||||
#endif /* !YYCOPY_NEEDED */
|
||||
|
||||
/* YYFINAL -- State number of the termination state. */
|
||||
#define YYFINAL 89
|
||||
#define YYFINAL 90
|
||||
/* YYLAST -- Last index in YYTABLE. */
|
||||
#define YYLAST 332
|
||||
|
||||
@ -819,9 +819,9 @@ union yyalloc
|
||||
/* YYNNTS -- Number of nonterminals. */
|
||||
#define YYNNTS 55
|
||||
/* YYNRULES -- Number of rules. */
|
||||
#define YYNRULES 154
|
||||
#define YYNRULES 155
|
||||
/* YYNSTATES -- Number of states. */
|
||||
#define YYNSTATES 255
|
||||
#define YYNSTATES 256
|
||||
|
||||
/* YYMAXUTOK -- Last valid token kind. */
|
||||
#define YYMAXUTOK 310
|
||||
@ -887,11 +887,11 @@ static const yytype_int16 yyrline[] =
|
||||
793, 794, 795, 798, 804, 807, 812, 817, 826, 835,
|
||||
847, 854, 861, 868, 875, 884, 887, 890, 893, 896,
|
||||
899, 902, 905, 908, 911, 914, 917, 920, 923, 926,
|
||||
929, 932, 937, 951, 960, 983, 984, 987, 987, 999,
|
||||
1002, 1003, 1010, 1011, 1014, 1014, 1026, 1029, 1030, 1037,
|
||||
1038, 1041, 1041, 1053, 1056, 1057, 1060, 1060, 1072, 1075,
|
||||
1076, 1083, 1087, 1093, 1102, 1110, 1119, 1128, 1139, 1140,
|
||||
1147, 1151, 1157, 1166, 1174
|
||||
929, 932, 937, 951, 960, 981, 1004, 1005, 1008, 1008,
|
||||
1020, 1023, 1024, 1031, 1032, 1035, 1035, 1047, 1050, 1051,
|
||||
1058, 1059, 1062, 1062, 1074, 1077, 1078, 1081, 1081, 1093,
|
||||
1096, 1097, 1104, 1108, 1114, 1123, 1131, 1140, 1149, 1160,
|
||||
1161, 1168, 1172, 1178, 1187, 1195
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -938,7 +938,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
|
||||
}
|
||||
#endif
|
||||
|
||||
#define YYPACT_NINF (-115)
|
||||
#define YYPACT_NINF (-116)
|
||||
|
||||
#define yypact_value_is_default(Yyn) \
|
||||
((Yyn) == YYPACT_NINF)
|
||||
@ -952,32 +952,32 @@ yysymbol_name (yysymbol_kind_t yysymbol)
|
||||
STATE-NUM. */
|
||||
static const yytype_int16 yypact[] =
|
||||
{
|
||||
177, -29, -115, -115, -115, -115, 46, 47, 9, 241,
|
||||
245, 245, 6, -115, 32, 75, 89, 117, 192, -115,
|
||||
41, 221, -115, -115, -115, 69, -115, -115, -115, 10,
|
||||
11, 238, 96, 30, -115, -115, -115, -115, -115, -115,
|
||||
258, -115, -115, 8, 54, 54, -115, -115, -115, 101,
|
||||
21, 35, 42, 80, -115, 12, -115, -115, -115, 56,
|
||||
-115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
|
||||
-115, -115, -115, 68, 53, -115, -115, 98, 55, -115,
|
||||
-115, 116, 67, -115, -115, 119, 111, -115, -115, -115,
|
||||
-115, 245, 114, -115, -3, 107, -115, 133, -115, 127,
|
||||
173, 174, -115, 9, -115, -115, 241, 156, 157, 161,
|
||||
-115, 195, 196, 197, 199, 209, -115, 6, 169, 126,
|
||||
241, 32, -115, 178, 6, 75, -115, 180, 245, 89,
|
||||
-115, 183, 245, 117, -115, -115, 38, -115, 172, -115,
|
||||
-115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
|
||||
-115, -115, -115, -115, -115, -115, 241, 186, -115, 6,
|
||||
190, -115, 245, 200, -115, 245, 200, -115, -115, -115,
|
||||
235, 205, -115, -115, 186, 190, 200, 200, 153, 194,
|
||||
76, 172, 243, -115, -115, -115, 103, 210, -115, -115,
|
||||
-115, 153, -115, 220, 226, 236, 240, 244, 246, 248,
|
||||
249, 250, 251, -115, -115, -115, -115, -115, -115, -115,
|
||||
-115, -115, -115, 1, -115, 153, 210, 252, 276, 294,
|
||||
295, 296, 297, 298, 299, 300, 301, -115, -115, -115,
|
||||
-115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
|
||||
-115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
|
||||
-115, -115, -115, -115, -115
|
||||
174, -29, -116, -116, -116, -116, 35, 38, 11, 239,
|
||||
150, 150, 8, -116, 32, 76, 88, 114, 254, -116,
|
||||
58, 218, -116, -116, -116, 70, -116, -116, -116, 12,
|
||||
13, 136, 73, 14, -116, -116, -116, -116, -116, -116,
|
||||
276, -116, -116, 4, 10, 10, -116, -116, -116, -116,
|
||||
190, 42, 81, 85, 97, -116, 64, -116, -116, -116,
|
||||
52, -116, -116, -116, -116, -116, -116, -116, -116, -116,
|
||||
-116, -116, -116, -116, 57, 2, -116, -116, 111, 9,
|
||||
-116, -116, 112, 56, -116, -116, 123, 61, -116, -116,
|
||||
-116, -116, 150, 62, -116, 75, 90, -116, 130, -116,
|
||||
188, 204, 205, -116, 11, -116, -116, 239, 55, 66,
|
||||
108, -116, 207, 210, 213, 228, 143, -116, 8, 155,
|
||||
175, 239, 32, -116, 209, 8, 76, -116, 211, 150,
|
||||
88, -116, 217, 150, 114, -116, -116, 194, -116, 202,
|
||||
-116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
|
||||
-116, -116, -116, -116, -116, -116, -116, 239, 225, -116,
|
||||
8, 227, -116, 150, 229, -116, 150, 229, -116, -116,
|
||||
-116, 233, 230, -116, -116, 225, 227, 229, 229, 235,
|
||||
232, 121, 202, 240, -116, -116, -116, 255, 238, -116,
|
||||
-116, -116, 235, -116, 234, 236, 244, 246, 247, 260,
|
||||
261, 262, 263, 264, -116, -116, -116, -116, -116, -116,
|
||||
-116, -116, -116, -116, 1, -116, 235, 238, 241, 296,
|
||||
297, 298, 299, 300, 302, 303, 304, 305, -116, -116,
|
||||
-116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
|
||||
-116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
|
||||
-116, -116, -116, -116, -116, -116
|
||||
};
|
||||
|
||||
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
|
||||
@ -985,54 +985,54 @@ static const yytype_int16 yypact[] =
|
||||
means the default is an error. */
|
||||
static const yytype_uint8 yydefact[] =
|
||||
{
|
||||
0, 0, 143, 145, 146, 147, 0, 0, 0, 0,
|
||||
0, 0, 0, 144, 0, 0, 0, 0, 0, 6,
|
||||
0, 0, 4, 8, 9, 0, 139, 141, 7, 0,
|
||||
0, 0, 144, 146, 147, 148, 0, 0, 0, 0,
|
||||
0, 0, 0, 145, 0, 0, 0, 0, 0, 6,
|
||||
0, 0, 4, 8, 9, 0, 140, 142, 7, 0,
|
||||
0, 26, 0, 0, 24, 37, 40, 39, 41, 38,
|
||||
0, 120, 35, 0, 0, 0, 114, 113, 112, 0,
|
||||
0, 0, 0, 0, 49, 0, 127, 51, 53, 0,
|
||||
117, 72, 73, 74, 79, 78, 82, 80, 81, 75,
|
||||
76, 77, 83, 0, 0, 115, 124, 0, 0, 122,
|
||||
136, 0, 0, 134, 131, 0, 0, 129, 142, 1,
|
||||
5, 0, 0, 31, 0, 0, 20, 0, 22, 0,
|
||||
0, 0, 27, 0, 15, 36, 0, 0, 0, 0,
|
||||
54, 0, 0, 0, 0, 0, 52, 0, 0, 0,
|
||||
0, 0, 12, 0, 0, 0, 13, 0, 0, 0,
|
||||
11, 0, 0, 0, 14, 140, 0, 10, 65, 21,
|
||||
23, 28, 29, 30, 25, 121, 18, 16, 17, 45,
|
||||
46, 47, 48, 50, 128, 19, 0, 119, 116, 0,
|
||||
126, 123, 0, 138, 135, 0, 133, 130, 33, 32,
|
||||
67, 34, 42, 84, 118, 125, 137, 132, 71, 0,
|
||||
68, 65, 95, 152, 154, 153, 0, 70, 148, 150,
|
||||
66, 0, 43, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 85, 86, 89, 87, 88, 90, 91,
|
||||
92, 93, 94, 0, 151, 0, 69, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 96, 97, 98,
|
||||
99, 102, 103, 104, 105, 106, 107, 110, 111, 108,
|
||||
109, 100, 101, 44, 149, 56, 55, 61, 60, 62,
|
||||
63, 64, 57, 58, 59
|
||||
0, 121, 35, 0, 0, 0, 114, 113, 115, 112,
|
||||
0, 0, 0, 0, 0, 49, 0, 128, 51, 53,
|
||||
0, 118, 72, 73, 74, 79, 78, 82, 80, 81,
|
||||
75, 76, 77, 83, 0, 0, 116, 125, 0, 0,
|
||||
123, 137, 0, 0, 135, 132, 0, 0, 130, 143,
|
||||
1, 5, 0, 0, 31, 0, 0, 20, 0, 22,
|
||||
0, 0, 0, 27, 0, 15, 36, 0, 0, 0,
|
||||
0, 54, 0, 0, 0, 0, 0, 52, 0, 0,
|
||||
0, 0, 0, 12, 0, 0, 0, 13, 0, 0,
|
||||
0, 11, 0, 0, 0, 14, 141, 0, 10, 65,
|
||||
21, 23, 28, 29, 30, 25, 122, 18, 16, 17,
|
||||
45, 46, 47, 48, 50, 129, 19, 0, 120, 117,
|
||||
0, 127, 124, 0, 139, 136, 0, 134, 131, 33,
|
||||
32, 67, 34, 42, 84, 119, 126, 138, 133, 71,
|
||||
0, 68, 65, 95, 153, 155, 154, 0, 70, 149,
|
||||
151, 66, 0, 43, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 85, 86, 89, 87, 88, 90,
|
||||
91, 92, 93, 94, 0, 152, 0, 69, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 96, 97,
|
||||
98, 99, 102, 103, 104, 105, 106, 107, 110, 111,
|
||||
108, 109, 100, 101, 44, 150, 56, 55, 61, 60,
|
||||
62, 63, 64, 57, 58, 59
|
||||
};
|
||||
|
||||
/* YYPGOTO[NTERM-NUM]. */
|
||||
static const yytype_int16 yypgoto[] =
|
||||
{
|
||||
-115, -115, -115, 290, -115, -115, 120, 211, -115, 176,
|
||||
207, 275, -115, 135, 202, -115, -114, 263, -115, -115,
|
||||
-115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
|
||||
-115, -9, -115, -115, 270, -115, 201, -115, -7, -115,
|
||||
198, -115, -107, -115, 187, -115, -115, 203, -115, -10,
|
||||
230, 306, 134, 112, 140
|
||||
-116, -116, -116, 294, -116, -116, -6, 212, -116, 180,
|
||||
214, 278, -116, 137, 206, -116, -115, 267, -116, -116,
|
||||
-116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
|
||||
-116, -9, -116, -116, 270, -116, 203, -116, -7, -116,
|
||||
198, -116, -85, -116, 192, -116, -116, 197, -116, -10,
|
||||
237, 310, 138, 115, 145
|
||||
};
|
||||
|
||||
/* YYDEFGOTO[NTERM-NUM]. */
|
||||
static const yytype_uint8 yydefgoto[] =
|
||||
{
|
||||
0, 20, 21, 22, 23, 24, 33, 34, 92, 93,
|
||||
41, 42, 171, 172, 54, 55, 56, 57, 203, 204,
|
||||
205, 206, 207, 208, 209, 210, 211, 212, 173, 179,
|
||||
72, 73, 182, 213, 58, 74, 75, 119, 94, 78,
|
||||
79, 123, 59, 86, 87, 131, 82, 83, 127, 25,
|
||||
26, 27, 187, 188, 189
|
||||
0, 20, 21, 22, 23, 24, 33, 34, 93, 94,
|
||||
41, 42, 172, 173, 55, 56, 57, 58, 204, 205,
|
||||
206, 207, 208, 209, 210, 211, 212, 213, 174, 180,
|
||||
73, 74, 183, 214, 59, 75, 76, 120, 95, 79,
|
||||
80, 124, 60, 87, 88, 132, 83, 84, 128, 25,
|
||||
26, 27, 188, 189, 190
|
||||
};
|
||||
|
||||
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
|
||||
@ -1040,78 +1040,78 @@ static const yytype_uint8 yydefgoto[] =
|
||||
number is the opposite. If YYTABLE_NINF, syntax error. */
|
||||
static const yytype_int16 yytable[] =
|
||||
{
|
||||
44, 45, 43, 154, 46, 47, 77, 81, 85, 46,
|
||||
47, 95, 97, 31, 31, 46, 47, 160, 28, 227,
|
||||
228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
|
||||
238, 239, 240, 241, 242, 48, 60, 138, 106, 168,
|
||||
48, 89, 35, 49, 36, 37, 48, 38, 49, 106,
|
||||
32, 32, 175, 115, 49, 29, 30, 96, 98, 31,
|
||||
111, 31, 50, 51, 52, 53, 61, 50, 51, 52,
|
||||
53, 103, 39, 35, 112, 36, 37, 104, 38, 76,
|
||||
40, 113, 62, 63, 64, 65, 66, 67, 68, 69,
|
||||
70, 71, 121, 80, 125, 91, 32, 117, 32, 243,
|
||||
122, 102, 126, 39, 46, 47, 129, 183, 120, 61,
|
||||
91, 40, 184, 157, 130, 191, 77, 91, 163, 114,
|
||||
81, 84, 166, 61, 85, 62, 63, 64, 65, 66,
|
||||
67, 68, 69, 70, 71, 48, 141, 185, 124, 62,
|
||||
63, 64, 65, 66, 67, 68, 69, 70, 71, 174,
|
||||
133, 61, 176, 136, 139, 177, 128, 183, 134, 132,
|
||||
180, 137, 184, 107, 108, 109, 156, 62, 63, 64,
|
||||
65, 66, 67, 68, 69, 70, 71, -2, 1, 118,
|
||||
140, 2, 142, 143, 3, 4, 5, 185, 6, 7,
|
||||
8, 9, 10, 11, 12, 186, 2, 103, 103, 3,
|
||||
4, 5, 103, 146, 147, 149, 150, 151, 148, 152,
|
||||
103, 13, 14, 15, 16, 17, 155, 170, 159, 18,
|
||||
162, -3, 1, 165, 19, 2, 13, 106, 3, 4,
|
||||
5, 117, 6, 7, 8, 9, 10, 11, 12, 2,
|
||||
190, 91, 3, 4, 5, 35, 181, 36, 37, 2,
|
||||
38, 215, 3, 4, 5, 13, 14, 15, 16, 17,
|
||||
217, 245, 35, 18, 36, 37, 218, 38, 19, 13,
|
||||
50, 51, 52, 53, 178, 39, 219, 18, 99, 13,
|
||||
220, 100, 101, 40, 221, 246, 222, 18, 223, 224,
|
||||
225, 226, 39, 193, 194, 195, 196, 197, 198, 199,
|
||||
200, 201, 202, 247, 248, 249, 250, 251, 252, 253,
|
||||
254, 90, 169, 145, 144, 105, 192, 153, 116, 110,
|
||||
167, 135, 158, 161, 88, 216, 214, 244, 0, 0,
|
||||
0, 0, 164
|
||||
44, 45, 43, 155, 46, 47, 78, 82, 86, 31,
|
||||
48, 46, 47, 96, 98, 31, 31, 48, 28, 228,
|
||||
229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
|
||||
239, 240, 241, 242, 243, 49, 61, 108, 109, 110,
|
||||
161, 122, 49, 50, 29, 107, 32, 30, 126, 123,
|
||||
50, 92, 32, 32, 119, 104, 127, 31, 90, 97,
|
||||
99, 105, 51, 52, 53, 54, 62, 46, 47, 51,
|
||||
52, 53, 54, 48, 35, 176, 36, 37, 103, 38,
|
||||
77, 112, 63, 64, 65, 66, 67, 68, 69, 70,
|
||||
71, 72, 81, 118, 32, 130, 104, 121, 49, 244,
|
||||
134, 137, 147, 131, 39, 116, 50, 104, 135, 138,
|
||||
62, 92, 40, 148, 158, 139, 107, 78, 85, 164,
|
||||
113, 82, 62, 167, 114, 86, 63, 64, 65, 66,
|
||||
67, 68, 69, 70, 71, 72, 115, 140, 63, 64,
|
||||
65, 66, 67, 68, 69, 70, 71, 72, 62, 104,
|
||||
175, 125, 129, 177, 2, 149, 178, 3, 4, 5,
|
||||
192, 181, 92, 133, 63, 64, 65, 66, 67, 68,
|
||||
69, 70, 71, 72, -2, 1, 100, 141, 2, 101,
|
||||
102, 3, 4, 5, 13, 6, 7, 8, 9, 10,
|
||||
11, 12, 18, 46, 47, 169, 104, 142, 35, 48,
|
||||
36, 37, 156, 38, 51, 52, 53, 54, 13, 14,
|
||||
15, 16, 17, 143, 144, 157, 18, 150, -3, 1,
|
||||
151, 19, 2, 152, 49, 3, 4, 5, 39, 6,
|
||||
7, 8, 9, 10, 11, 12, 40, 2, 153, 184,
|
||||
3, 4, 5, 35, 185, 36, 37, 171, 38, 160,
|
||||
246, 163, 13, 14, 15, 16, 17, 166, 2, 184,
|
||||
18, 3, 4, 5, 185, 19, 107, 13, 118, 186,
|
||||
92, 182, 179, 39, 218, 18, 219, 187, 191, 216,
|
||||
35, 40, 36, 37, 220, 38, 221, 222, 13, 186,
|
||||
194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
|
||||
223, 224, 225, 226, 227, 247, 248, 249, 250, 251,
|
||||
39, 252, 253, 254, 255, 91, 145, 170, 106, 193,
|
||||
111, 146, 154, 117, 162, 159, 168, 165, 89, 136,
|
||||
217, 245, 215
|
||||
};
|
||||
|
||||
static const yytype_int16 yycheck[] =
|
||||
static const yytype_uint8 yycheck[] =
|
||||
{
|
||||
10, 11, 9, 117, 3, 4, 15, 16, 17, 3,
|
||||
4, 1, 1, 5, 5, 3, 4, 124, 47, 18,
|
||||
10, 11, 9, 118, 3, 4, 15, 16, 17, 5,
|
||||
9, 3, 4, 1, 1, 5, 5, 9, 47, 18,
|
||||
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
|
||||
29, 30, 31, 32, 33, 34, 4, 40, 41, 1,
|
||||
34, 0, 4, 42, 6, 7, 34, 9, 42, 41,
|
||||
42, 42, 159, 41, 42, 9, 9, 47, 47, 5,
|
||||
39, 5, 61, 62, 63, 64, 34, 61, 62, 63,
|
||||
64, 41, 34, 4, 39, 6, 7, 47, 9, 4,
|
||||
42, 39, 50, 51, 52, 53, 54, 55, 56, 57,
|
||||
58, 59, 39, 4, 39, 41, 42, 41, 42, 213,
|
||||
47, 5, 47, 34, 3, 4, 39, 4, 40, 34,
|
||||
41, 42, 9, 120, 47, 39, 125, 41, 128, 39,
|
||||
129, 4, 132, 34, 133, 50, 51, 52, 53, 54,
|
||||
55, 56, 57, 58, 59, 34, 9, 34, 40, 50,
|
||||
51, 52, 53, 54, 55, 56, 57, 58, 59, 156,
|
||||
39, 34, 162, 39, 47, 165, 40, 4, 47, 40,
|
||||
170, 47, 9, 43, 44, 45, 40, 50, 51, 52,
|
||||
53, 54, 55, 56, 57, 58, 59, 0, 1, 59,
|
||||
47, 4, 9, 9, 7, 8, 9, 34, 11, 12,
|
||||
13, 14, 15, 16, 17, 42, 4, 41, 41, 7,
|
||||
8, 9, 41, 47, 47, 10, 10, 10, 47, 10,
|
||||
41, 34, 35, 36, 37, 38, 47, 45, 40, 42,
|
||||
40, 0, 1, 40, 47, 4, 34, 41, 7, 8,
|
||||
9, 41, 11, 12, 13, 14, 15, 16, 17, 4,
|
||||
46, 41, 7, 8, 9, 4, 41, 6, 7, 4,
|
||||
9, 41, 7, 8, 9, 34, 35, 36, 37, 38,
|
||||
40, 9, 4, 42, 6, 7, 40, 9, 47, 34,
|
||||
61, 62, 63, 64, 39, 34, 40, 42, 40, 34,
|
||||
40, 43, 44, 42, 40, 9, 40, 42, 40, 40,
|
||||
40, 40, 34, 50, 51, 52, 53, 54, 55, 56,
|
||||
57, 58, 59, 9, 9, 9, 9, 9, 9, 9,
|
||||
9, 21, 136, 106, 103, 40, 181, 115, 55, 49,
|
||||
133, 91, 121, 125, 18, 191, 186, 215, -1, -1,
|
||||
-1, -1, 129
|
||||
29, 30, 31, 32, 33, 34, 4, 43, 44, 45,
|
||||
125, 39, 34, 42, 9, 41, 42, 9, 39, 47,
|
||||
42, 41, 42, 42, 60, 41, 47, 5, 0, 47,
|
||||
47, 47, 61, 62, 63, 64, 34, 3, 4, 61,
|
||||
62, 63, 64, 9, 4, 160, 6, 7, 5, 9,
|
||||
4, 39, 50, 51, 52, 53, 54, 55, 56, 57,
|
||||
58, 59, 4, 41, 42, 39, 41, 40, 34, 214,
|
||||
39, 39, 47, 47, 34, 41, 42, 41, 47, 47,
|
||||
34, 41, 42, 47, 121, 40, 41, 126, 4, 129,
|
||||
39, 130, 34, 133, 39, 134, 50, 51, 52, 53,
|
||||
54, 55, 56, 57, 58, 59, 39, 47, 50, 51,
|
||||
52, 53, 54, 55, 56, 57, 58, 59, 34, 41,
|
||||
157, 40, 40, 163, 4, 47, 166, 7, 8, 9,
|
||||
39, 171, 41, 40, 50, 51, 52, 53, 54, 55,
|
||||
56, 57, 58, 59, 0, 1, 40, 47, 4, 43,
|
||||
44, 7, 8, 9, 34, 11, 12, 13, 14, 15,
|
||||
16, 17, 42, 3, 4, 1, 41, 9, 4, 9,
|
||||
6, 7, 47, 9, 61, 62, 63, 64, 34, 35,
|
||||
36, 37, 38, 9, 9, 40, 42, 10, 0, 1,
|
||||
10, 47, 4, 10, 34, 7, 8, 9, 34, 11,
|
||||
12, 13, 14, 15, 16, 17, 42, 4, 10, 4,
|
||||
7, 8, 9, 4, 9, 6, 7, 45, 9, 40,
|
||||
9, 40, 34, 35, 36, 37, 38, 40, 4, 4,
|
||||
42, 7, 8, 9, 9, 47, 41, 34, 41, 34,
|
||||
41, 41, 39, 34, 40, 42, 40, 42, 46, 41,
|
||||
4, 42, 6, 7, 40, 9, 40, 40, 34, 34,
|
||||
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
|
||||
40, 40, 40, 40, 40, 9, 9, 9, 9, 9,
|
||||
34, 9, 9, 9, 9, 21, 104, 137, 40, 182,
|
||||
50, 107, 116, 56, 126, 122, 134, 130, 18, 92,
|
||||
192, 216, 187
|
||||
};
|
||||
|
||||
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
|
||||
@ -1122,28 +1122,28 @@ static const yytype_int8 yystos[] =
|
||||
15, 16, 17, 34, 35, 36, 37, 38, 42, 47,
|
||||
66, 67, 68, 69, 70, 114, 115, 116, 47, 9,
|
||||
9, 5, 42, 71, 72, 4, 6, 7, 9, 34,
|
||||
42, 75, 76, 103, 114, 114, 3, 4, 34, 42,
|
||||
61, 62, 63, 64, 79, 80, 81, 82, 99, 107,
|
||||
4, 34, 50, 51, 52, 53, 54, 55, 56, 57,
|
||||
58, 59, 95, 96, 100, 101, 4, 96, 104, 105,
|
||||
4, 96, 111, 112, 4, 96, 108, 109, 116, 0,
|
||||
68, 41, 73, 74, 103, 1, 47, 1, 47, 40,
|
||||
43, 44, 5, 41, 47, 76, 41, 71, 71, 71,
|
||||
99, 39, 39, 39, 39, 41, 82, 41, 71, 102,
|
||||
40, 39, 47, 106, 40, 39, 47, 113, 40, 39,
|
||||
47, 110, 40, 39, 47, 115, 39, 47, 40, 47,
|
||||
47, 9, 9, 9, 72, 75, 47, 47, 47, 10,
|
||||
10, 10, 10, 79, 81, 47, 40, 103, 101, 40,
|
||||
107, 105, 40, 114, 112, 40, 114, 109, 1, 74,
|
||||
45, 77, 78, 93, 103, 107, 114, 114, 39, 94,
|
||||
114, 41, 97, 4, 9, 34, 42, 117, 118, 119,
|
||||
46, 39, 78, 50, 51, 52, 53, 54, 55, 56,
|
||||
57, 58, 59, 83, 84, 85, 86, 87, 88, 89,
|
||||
90, 91, 92, 98, 119, 41, 117, 40, 40, 40,
|
||||
40, 40, 40, 40, 40, 40, 40, 18, 19, 20,
|
||||
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
|
||||
31, 32, 33, 81, 118, 9, 9, 9, 9, 9,
|
||||
9, 9, 9, 9, 9
|
||||
42, 75, 76, 103, 114, 114, 3, 4, 9, 34,
|
||||
42, 61, 62, 63, 64, 79, 80, 81, 82, 99,
|
||||
107, 4, 34, 50, 51, 52, 53, 54, 55, 56,
|
||||
57, 58, 59, 95, 96, 100, 101, 4, 96, 104,
|
||||
105, 4, 96, 111, 112, 4, 96, 108, 109, 116,
|
||||
0, 68, 41, 73, 74, 103, 1, 47, 1, 47,
|
||||
40, 43, 44, 5, 41, 47, 76, 41, 71, 71,
|
||||
71, 99, 39, 39, 39, 39, 41, 82, 41, 71,
|
||||
102, 40, 39, 47, 106, 40, 39, 47, 113, 40,
|
||||
39, 47, 110, 40, 39, 47, 115, 39, 47, 40,
|
||||
47, 47, 9, 9, 9, 72, 75, 47, 47, 47,
|
||||
10, 10, 10, 10, 79, 81, 47, 40, 103, 101,
|
||||
40, 107, 105, 40, 114, 112, 40, 114, 109, 1,
|
||||
74, 45, 77, 78, 93, 103, 107, 114, 114, 39,
|
||||
94, 114, 41, 97, 4, 9, 34, 42, 117, 118,
|
||||
119, 46, 39, 78, 50, 51, 52, 53, 54, 55,
|
||||
56, 57, 58, 59, 83, 84, 85, 86, 87, 88,
|
||||
89, 90, 91, 92, 98, 119, 41, 117, 40, 40,
|
||||
40, 40, 40, 40, 40, 40, 40, 40, 18, 19,
|
||||
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
|
||||
30, 31, 32, 33, 81, 118, 9, 9, 9, 9,
|
||||
9, 9, 9, 9, 9, 9
|
||||
};
|
||||
|
||||
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
|
||||
@ -1160,11 +1160,11 @@ static const yytype_int8 yyr1[] =
|
||||
95, 95, 95, 96, 97, 97, 97, 97, 97, 97,
|
||||
97, 97, 97, 97, 97, 98, 98, 98, 98, 98,
|
||||
98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
|
||||
98, 98, 99, 99, 99, 100, 100, 102, 101, 101,
|
||||
103, 103, 104, 104, 106, 105, 105, 107, 107, 108,
|
||||
108, 110, 109, 109, 111, 111, 113, 112, 112, 114,
|
||||
114, 115, 115, 116, 116, 116, 116, 116, 117, 117,
|
||||
118, 118, 119, 119, 119
|
||||
98, 98, 99, 99, 99, 99, 100, 100, 102, 101,
|
||||
101, 103, 103, 104, 104, 106, 105, 105, 107, 107,
|
||||
108, 108, 110, 109, 109, 111, 111, 113, 112, 112,
|
||||
114, 114, 115, 115, 116, 116, 116, 116, 116, 117,
|
||||
117, 118, 118, 119, 119, 119
|
||||
};
|
||||
|
||||
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
|
||||
@ -1181,11 +1181,11 @@ static const yytype_int8 yyr2[] =
|
||||
1, 1, 1, 1, 0, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 0, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 1, 1, 1, 1, 3, 0, 4, 3,
|
||||
1, 3, 1, 3, 0, 4, 3, 1, 3, 1,
|
||||
3, 0, 4, 3, 1, 3, 0, 4, 3, 1,
|
||||
3, 1, 2, 1, 1, 1, 1, 1, 1, 3,
|
||||
1, 2, 1, 1, 1
|
||||
2, 2, 1, 1, 1, 1, 1, 3, 0, 4,
|
||||
3, 1, 3, 1, 3, 0, 4, 3, 1, 3,
|
||||
1, 3, 0, 4, 3, 1, 3, 0, 4, 3,
|
||||
1, 3, 1, 2, 1, 1, 1, 1, 1, 1,
|
||||
3, 1, 2, 1, 1, 1
|
||||
};
|
||||
|
||||
|
||||
@ -2886,17 +2886,43 @@ yyreduce:
|
||||
#line 2881 "gram.c"
|
||||
break;
|
||||
|
||||
case 117: /* $@1: %empty */
|
||||
#line 987 "gram.y"
|
||||
case 115: /* cmnd: WORD */
|
||||
#line 981 "gram.y"
|
||||
{
|
||||
if (strcmp((yyvsp[0].string), "list") == 0) {
|
||||
struct sudo_command *c;
|
||||
|
||||
if ((c = new_command((yyvsp[0].string), NULL)) == NULL) {
|
||||
sudoerserror(N_("unable to allocate memory"));
|
||||
YYERROR;
|
||||
}
|
||||
(yyval.member) = new_member((char *)c, COMMAND);
|
||||
if ((yyval.member) == NULL) {
|
||||
free(c);
|
||||
sudoerserror(N_("unable to allocate memory"));
|
||||
YYERROR;
|
||||
}
|
||||
parser_leak_remove(LEAK_PTR, (yyvsp[0].string));
|
||||
parser_leak_add(LEAK_MEMBER, (yyval.member));
|
||||
} else {
|
||||
sudoerserror(N_("expected a fully-qualified path name"));
|
||||
YYERROR;
|
||||
}
|
||||
}
|
||||
#line 2907 "gram.c"
|
||||
break;
|
||||
|
||||
case 118: /* $@1: %empty */
|
||||
#line 1008 "gram.y"
|
||||
{
|
||||
alias_line = this_lineno;
|
||||
alias_column = sudolinebuf.toke_start + 1;
|
||||
}
|
||||
#line 2890 "gram.c"
|
||||
#line 2916 "gram.c"
|
||||
break;
|
||||
|
||||
case 118: /* hostalias: ALIAS $@1 '=' hostlist */
|
||||
#line 990 "gram.y"
|
||||
case 119: /* hostalias: ALIAS $@1 '=' hostlist */
|
||||
#line 1011 "gram.y"
|
||||
{
|
||||
if (!alias_add(&parsed_policy, (yyvsp[-3].string), HOSTALIAS,
|
||||
sudoers, alias_line, alias_column, (yyvsp[0].member))) {
|
||||
@ -2906,30 +2932,30 @@ yyreduce:
|
||||
parser_leak_remove(LEAK_PTR, (yyvsp[-3].string));
|
||||
parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member));
|
||||
}
|
||||
#line 2904 "gram.c"
|
||||
#line 2930 "gram.c"
|
||||
break;
|
||||
|
||||
case 121: /* hostlist: hostlist ',' ophost */
|
||||
#line 1003 "gram.y"
|
||||
case 122: /* hostlist: hostlist ',' ophost */
|
||||
#line 1024 "gram.y"
|
||||
{
|
||||
parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member));
|
||||
HLTQ_CONCAT((yyvsp[-2].member), (yyvsp[0].member), entries);
|
||||
(yyval.member) = (yyvsp[-2].member);
|
||||
}
|
||||
#line 2914 "gram.c"
|
||||
#line 2940 "gram.c"
|
||||
break;
|
||||
|
||||
case 124: /* $@2: %empty */
|
||||
#line 1014 "gram.y"
|
||||
case 125: /* $@2: %empty */
|
||||
#line 1035 "gram.y"
|
||||
{
|
||||
alias_line = this_lineno;
|
||||
alias_column = sudolinebuf.toke_start + 1;
|
||||
}
|
||||
#line 2923 "gram.c"
|
||||
#line 2949 "gram.c"
|
||||
break;
|
||||
|
||||
case 125: /* cmndalias: ALIAS $@2 '=' cmndlist */
|
||||
#line 1017 "gram.y"
|
||||
case 126: /* cmndalias: ALIAS $@2 '=' cmndlist */
|
||||
#line 1038 "gram.y"
|
||||
{
|
||||
if (!alias_add(&parsed_policy, (yyvsp[-3].string), CMNDALIAS,
|
||||
sudoers, alias_line, alias_column, (yyvsp[0].member))) {
|
||||
@ -2939,30 +2965,30 @@ yyreduce:
|
||||
parser_leak_remove(LEAK_PTR, (yyvsp[-3].string));
|
||||
parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member));
|
||||
}
|
||||
#line 2937 "gram.c"
|
||||
#line 2963 "gram.c"
|
||||
break;
|
||||
|
||||
case 128: /* cmndlist: cmndlist ',' digcmnd */
|
||||
#line 1030 "gram.y"
|
||||
case 129: /* cmndlist: cmndlist ',' digcmnd */
|
||||
#line 1051 "gram.y"
|
||||
{
|
||||
parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member));
|
||||
HLTQ_CONCAT((yyvsp[-2].member), (yyvsp[0].member), entries);
|
||||
(yyval.member) = (yyvsp[-2].member);
|
||||
}
|
||||
#line 2947 "gram.c"
|
||||
#line 2973 "gram.c"
|
||||
break;
|
||||
|
||||
case 131: /* $@3: %empty */
|
||||
#line 1041 "gram.y"
|
||||
case 132: /* $@3: %empty */
|
||||
#line 1062 "gram.y"
|
||||
{
|
||||
alias_line = this_lineno;
|
||||
alias_column = sudolinebuf.toke_start + 1;
|
||||
}
|
||||
#line 2956 "gram.c"
|
||||
#line 2982 "gram.c"
|
||||
break;
|
||||
|
||||
case 132: /* runasalias: ALIAS $@3 '=' userlist */
|
||||
#line 1044 "gram.y"
|
||||
case 133: /* runasalias: ALIAS $@3 '=' userlist */
|
||||
#line 1065 "gram.y"
|
||||
{
|
||||
if (!alias_add(&parsed_policy, (yyvsp[-3].string), RUNASALIAS,
|
||||
sudoers, alias_line, alias_column, (yyvsp[0].member))) {
|
||||
@ -2972,20 +2998,20 @@ yyreduce:
|
||||
parser_leak_remove(LEAK_PTR, (yyvsp[-3].string));
|
||||
parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member));
|
||||
}
|
||||
#line 2970 "gram.c"
|
||||
#line 2996 "gram.c"
|
||||
break;
|
||||
|
||||
case 136: /* $@4: %empty */
|
||||
#line 1060 "gram.y"
|
||||
case 137: /* $@4: %empty */
|
||||
#line 1081 "gram.y"
|
||||
{
|
||||
alias_line = this_lineno;
|
||||
alias_column = sudolinebuf.toke_start + 1;
|
||||
}
|
||||
#line 2979 "gram.c"
|
||||
#line 3005 "gram.c"
|
||||
break;
|
||||
|
||||
case 137: /* useralias: ALIAS $@4 '=' userlist */
|
||||
#line 1063 "gram.y"
|
||||
case 138: /* useralias: ALIAS $@4 '=' userlist */
|
||||
#line 1084 "gram.y"
|
||||
{
|
||||
if (!alias_add(&parsed_policy, (yyvsp[-3].string), USERALIAS,
|
||||
sudoers, alias_line, alias_column, (yyvsp[0].member))) {
|
||||
@ -2995,39 +3021,39 @@ yyreduce:
|
||||
parser_leak_remove(LEAK_PTR, (yyvsp[-3].string));
|
||||
parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member));
|
||||
}
|
||||
#line 2993 "gram.c"
|
||||
#line 3019 "gram.c"
|
||||
break;
|
||||
|
||||
case 140: /* userlist: userlist ',' opuser */
|
||||
#line 1076 "gram.y"
|
||||
case 141: /* userlist: userlist ',' opuser */
|
||||
#line 1097 "gram.y"
|
||||
{
|
||||
parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member));
|
||||
HLTQ_CONCAT((yyvsp[-2].member), (yyvsp[0].member), entries);
|
||||
(yyval.member) = (yyvsp[-2].member);
|
||||
}
|
||||
#line 3003 "gram.c"
|
||||
#line 3029 "gram.c"
|
||||
break;
|
||||
|
||||
case 141: /* opuser: user */
|
||||
#line 1083 "gram.y"
|
||||
case 142: /* opuser: user */
|
||||
#line 1104 "gram.y"
|
||||
{
|
||||
(yyval.member) = (yyvsp[0].member);
|
||||
(yyval.member)->negated = false;
|
||||
}
|
||||
#line 3012 "gram.c"
|
||||
#line 3038 "gram.c"
|
||||
break;
|
||||
|
||||
case 142: /* opuser: '!' user */
|
||||
#line 1087 "gram.y"
|
||||
case 143: /* opuser: '!' user */
|
||||
#line 1108 "gram.y"
|
||||
{
|
||||
(yyval.member) = (yyvsp[0].member);
|
||||
(yyval.member)->negated = true;
|
||||
}
|
||||
#line 3021 "gram.c"
|
||||
#line 3047 "gram.c"
|
||||
break;
|
||||
|
||||
case 143: /* user: ALIAS */
|
||||
#line 1093 "gram.y"
|
||||
case 144: /* user: ALIAS */
|
||||
#line 1114 "gram.y"
|
||||
{
|
||||
(yyval.member) = new_member((yyvsp[0].string), ALIAS);
|
||||
if ((yyval.member) == NULL) {
|
||||
@ -3037,11 +3063,11 @@ yyreduce:
|
||||
parser_leak_remove(LEAK_PTR, (yyvsp[0].string));
|
||||
parser_leak_add(LEAK_MEMBER, (yyval.member));
|
||||
}
|
||||
#line 3035 "gram.c"
|
||||
#line 3061 "gram.c"
|
||||
break;
|
||||
|
||||
case 144: /* user: ALL */
|
||||
#line 1102 "gram.y"
|
||||
case 145: /* user: ALL */
|
||||
#line 1123 "gram.y"
|
||||
{
|
||||
(yyval.member) = new_member(NULL, ALL);
|
||||
if ((yyval.member) == NULL) {
|
||||
@ -3050,11 +3076,11 @@ yyreduce:
|
||||
}
|
||||
parser_leak_add(LEAK_MEMBER, (yyval.member));
|
||||
}
|
||||
#line 3048 "gram.c"
|
||||
#line 3074 "gram.c"
|
||||
break;
|
||||
|
||||
case 145: /* user: NETGROUP */
|
||||
#line 1110 "gram.y"
|
||||
case 146: /* user: NETGROUP */
|
||||
#line 1131 "gram.y"
|
||||
{
|
||||
(yyval.member) = new_member((yyvsp[0].string), NETGROUP);
|
||||
if ((yyval.member) == NULL) {
|
||||
@ -3064,11 +3090,11 @@ yyreduce:
|
||||
parser_leak_remove(LEAK_PTR, (yyvsp[0].string));
|
||||
parser_leak_add(LEAK_MEMBER, (yyval.member));
|
||||
}
|
||||
#line 3062 "gram.c"
|
||||
#line 3088 "gram.c"
|
||||
break;
|
||||
|
||||
case 146: /* user: USERGROUP */
|
||||
#line 1119 "gram.y"
|
||||
case 147: /* user: USERGROUP */
|
||||
#line 1140 "gram.y"
|
||||
{
|
||||
(yyval.member) = new_member((yyvsp[0].string), USERGROUP);
|
||||
if ((yyval.member) == NULL) {
|
||||
@ -3078,11 +3104,11 @@ yyreduce:
|
||||
parser_leak_remove(LEAK_PTR, (yyvsp[0].string));
|
||||
parser_leak_add(LEAK_MEMBER, (yyval.member));
|
||||
}
|
||||
#line 3076 "gram.c"
|
||||
#line 3102 "gram.c"
|
||||
break;
|
||||
|
||||
case 147: /* user: WORD */
|
||||
#line 1128 "gram.y"
|
||||
case 148: /* user: WORD */
|
||||
#line 1149 "gram.y"
|
||||
{
|
||||
(yyval.member) = new_member((yyvsp[0].string), WORD);
|
||||
if ((yyval.member) == NULL) {
|
||||
@ -3092,39 +3118,39 @@ yyreduce:
|
||||
parser_leak_remove(LEAK_PTR, (yyvsp[0].string));
|
||||
parser_leak_add(LEAK_MEMBER, (yyval.member));
|
||||
}
|
||||
#line 3090 "gram.c"
|
||||
#line 3116 "gram.c"
|
||||
break;
|
||||
|
||||
case 149: /* grouplist: grouplist ',' opgroup */
|
||||
#line 1140 "gram.y"
|
||||
case 150: /* grouplist: grouplist ',' opgroup */
|
||||
#line 1161 "gram.y"
|
||||
{
|
||||
parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member));
|
||||
HLTQ_CONCAT((yyvsp[-2].member), (yyvsp[0].member), entries);
|
||||
(yyval.member) = (yyvsp[-2].member);
|
||||
}
|
||||
#line 3100 "gram.c"
|
||||
#line 3126 "gram.c"
|
||||
break;
|
||||
|
||||
case 150: /* opgroup: group */
|
||||
#line 1147 "gram.y"
|
||||
case 151: /* opgroup: group */
|
||||
#line 1168 "gram.y"
|
||||
{
|
||||
(yyval.member) = (yyvsp[0].member);
|
||||
(yyval.member)->negated = false;
|
||||
}
|
||||
#line 3109 "gram.c"
|
||||
#line 3135 "gram.c"
|
||||
break;
|
||||
|
||||
case 151: /* opgroup: '!' group */
|
||||
#line 1151 "gram.y"
|
||||
case 152: /* opgroup: '!' group */
|
||||
#line 1172 "gram.y"
|
||||
{
|
||||
(yyval.member) = (yyvsp[0].member);
|
||||
(yyval.member)->negated = true;
|
||||
}
|
||||
#line 3118 "gram.c"
|
||||
#line 3144 "gram.c"
|
||||
break;
|
||||
|
||||
case 152: /* group: ALIAS */
|
||||
#line 1157 "gram.y"
|
||||
case 153: /* group: ALIAS */
|
||||
#line 1178 "gram.y"
|
||||
{
|
||||
(yyval.member) = new_member((yyvsp[0].string), ALIAS);
|
||||
if ((yyval.member) == NULL) {
|
||||
@ -3134,11 +3160,11 @@ yyreduce:
|
||||
parser_leak_remove(LEAK_PTR, (yyvsp[0].string));
|
||||
parser_leak_add(LEAK_MEMBER, (yyval.member));
|
||||
}
|
||||
#line 3132 "gram.c"
|
||||
#line 3158 "gram.c"
|
||||
break;
|
||||
|
||||
case 153: /* group: ALL */
|
||||
#line 1166 "gram.y"
|
||||
case 154: /* group: ALL */
|
||||
#line 1187 "gram.y"
|
||||
{
|
||||
(yyval.member) = new_member(NULL, ALL);
|
||||
if ((yyval.member) == NULL) {
|
||||
@ -3147,11 +3173,11 @@ yyreduce:
|
||||
}
|
||||
parser_leak_add(LEAK_MEMBER, (yyval.member));
|
||||
}
|
||||
#line 3145 "gram.c"
|
||||
#line 3171 "gram.c"
|
||||
break;
|
||||
|
||||
case 154: /* group: WORD */
|
||||
#line 1174 "gram.y"
|
||||
case 155: /* group: WORD */
|
||||
#line 1195 "gram.y"
|
||||
{
|
||||
(yyval.member) = new_member((yyvsp[0].string), WORD);
|
||||
if ((yyval.member) == NULL) {
|
||||
@ -3161,11 +3187,11 @@ yyreduce:
|
||||
parser_leak_remove(LEAK_PTR, (yyvsp[0].string));
|
||||
parser_leak_add(LEAK_MEMBER, (yyval.member));
|
||||
}
|
||||
#line 3159 "gram.c"
|
||||
#line 3185 "gram.c"
|
||||
break;
|
||||
|
||||
|
||||
#line 3163 "gram.c"
|
||||
#line 3189 "gram.c"
|
||||
|
||||
default: break;
|
||||
}
|
||||
@ -3358,7 +3384,7 @@ yyreturnlab:
|
||||
return yyresult;
|
||||
}
|
||||
|
||||
#line 1184 "gram.y"
|
||||
#line 1205 "gram.y"
|
||||
|
||||
/* Like yyerror() but takes a printf-style format string. */
|
||||
void
|
||||
|
@ -978,6 +978,27 @@ cmnd : ALL {
|
||||
parser_leak_remove(LEAK_PTR, $1.args);
|
||||
parser_leak_add(LEAK_MEMBER, $$);
|
||||
}
|
||||
| WORD {
|
||||
if (strcmp($1, "list") == 0) {
|
||||
struct sudo_command *c;
|
||||
|
||||
if ((c = new_command($1, NULL)) == NULL) {
|
||||
sudoerserror(N_("unable to allocate memory"));
|
||||
YYERROR;
|
||||
}
|
||||
$$ = new_member((char *)c, COMMAND);
|
||||
if ($$ == NULL) {
|
||||
free(c);
|
||||
sudoerserror(N_("unable to allocate memory"));
|
||||
YYERROR;
|
||||
}
|
||||
parser_leak_remove(LEAK_PTR, $1);
|
||||
parser_leak_add(LEAK_MEMBER, $$);
|
||||
} else {
|
||||
sudoerserror(N_("expected a fully-qualified path name"));
|
||||
YYERROR;
|
||||
}
|
||||
}
|
||||
;
|
||||
|
||||
hostaliases : hostalias
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -750,14 +750,6 @@ sha512 {
|
||||
return SHA512_TOK;
|
||||
}
|
||||
|
||||
list {
|
||||
/* No command line args. */
|
||||
LEXTRACE("COMMAND ");
|
||||
if (!fill_cmnd(sudoerstext, sudoersleng))
|
||||
yyterminate();
|
||||
return COMMAND;
|
||||
} /* sudo -l -U otheruser */
|
||||
|
||||
sudoedit {
|
||||
BEGIN GOTCMND;
|
||||
LEXTRACE("COMMAND ");
|
||||
|
Loading…
x
Reference in New Issue
Block a user