From f14dd25b017ec5465cd318fc99c669bd70a50257 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Thu, 12 Aug 1999 14:29:12 +0000 Subject: [PATCH] Break 'WORD' regexp def into HOSTNAME and USERNAME. These days a username can contain just about anything so be very permissive. Also drop the unused \. punctuation. --- lex.yy.c | 486 +++++++++++++++++++++++++++++------------------------- parse.lex | 15 +- 2 files changed, 266 insertions(+), 235 deletions(-) diff --git a/lex.yy.c b/lex.yy.c index 96f1c82d8..dc34fffcf 100644 --- a/lex.yy.c +++ b/lex.yy.c @@ -284,30 +284,35 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 27 -#define YY_END_OF_BUFFER 28 -static yyconst short int yy_accept[184] = +#define YY_NUM_RULES 26 +#define YY_END_OF_BUFFER 27 +static yyconst short int yy_accept[222] = { 0, - 0, 0, 0, 0, 0, 0, 28, 26, 1, 5, - 9, 26, 26, 19, 26, 8, 12, 26, 25, 11, - 10, 24, 24, 24, 26, 25, 7, 4, 7, 7, - 7, 4, 7, 7, 7, 4, 4, 7, 7, 7, - 26, 7, 26, 22, 21, 21, 20, 20, 20, 21, - 1, 9, 0, 6, 16, 15, 23, 25, 0, 25, - 25, 0, 24, 24, 24, 0, 2, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 3, 3, 21, 21, 21, 21, 20, 20, 20, 0, - 25, 18, 24, 24, 7, 7, 7, 7, 7, 21, - - 20, 20, 0, 0, 24, 24, 7, 7, 7, 7, - 20, 20, 0, 0, 24, 24, 7, 7, 7, 7, - 20, 20, 0, 0, 24, 24, 7, 7, 7, 7, - 20, 20, 17, 0, 24, 0, 14, 7, 7, 7, - 20, 0, 17, 24, 7, 7, 7, 20, 0, 17, - 0, 13, 7, 7, 0, 0, 7, 7, 0, 0, - 7, 7, 0, 0, 7, 7, 0, 0, 7, 7, - 0, 0, 7, 7, 17, 0, 7, 7, 17, 7, - 17, 7, 0 + 0, 0, 0, 0, 0, 0, 27, 25, 1, 5, + 9, 25, 25, 18, 25, 8, 25, 24, 11, 10, + 23, 23, 23, 25, 24, 7, 4, 7, 7, 7, + 4, 7, 7, 4, 4, 7, 7, 7, 25, 7, + 20, 9, 20, 20, 21, 20, 20, 20, 10, 19, + 19, 19, 20, 20, 1, 9, 0, 6, 15, 14, + 22, 24, 0, 24, 24, 0, 23, 23, 23, 0, + 2, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 3, 3, 20, 9, 15, 14, + 20, 20, 20, 20, 20, 20, 19, 19, 19, 0, + + 24, 17, 23, 23, 7, 7, 7, 7, 7, 20, + 20, 17, 19, 19, 0, 0, 23, 23, 7, 7, + 7, 7, 20, 20, 19, 19, 0, 0, 23, 23, + 7, 7, 7, 7, 20, 20, 19, 19, 0, 0, + 23, 23, 7, 7, 7, 7, 20, 20, 19, 19, + 16, 0, 23, 0, 13, 7, 7, 7, 16, 20, + 19, 0, 16, 23, 7, 7, 7, 20, 16, 19, + 0, 16, 0, 12, 7, 7, 20, 16, 0, 0, + 7, 7, 20, 20, 0, 0, 7, 7, 20, 20, + 0, 0, 7, 7, 20, 20, 0, 0, 7, 7, + + 20, 20, 0, 0, 7, 7, 20, 20, 16, 0, + 7, 7, 16, 20, 16, 7, 16, 16, 7, 16, + 0 } ; static yyconst int yy_ec[256] = @@ -344,120 +349,142 @@ static yyconst int yy_ec[256] = static yyconst int yy_meta[28] = { 0, - 1, 2, 2, 1, 3, 1, 1, 1, 1, 2, - 4, 5, 1, 4, 2, 6, 4, 4, 4, 4, - 4, 4, 4, 4, 2, 4, 4 + 1, 2, 2, 1, 3, 1, 1, 4, 1, 2, + 5, 6, 1, 5, 2, 7, 5, 5, 5, 5, + 5, 5, 5, 5, 8, 5, 5 } ; -static yyconst short int yy_base[199] = +static yyconst short int yy_base[239] = { 0, - 0, 0, 27, 0, 54, 0, 449, 450, 446, 450, - 443, 443, 0, 450, 0, 450, 450, 0, 70, 450, - 450, 74, 76, 72, 88, 433, 0, 450, 440, 103, - 130, 450, 0, 78, 157, 450, 0, 184, 422, 425, - 93, 198, 0, 450, 0, 86, 202, 214, 85, 429, - 438, 435, 435, 450, 0, 0, 0, 425, 422, 216, - 423, 0, 413, 111, 210, 157, 450, 0, 429, 0, - 0, 218, 224, 418, 417, 0, 241, 0, 408, 406, - 184, 450, 0, 416, 225, 415, 405, 222, 248, 258, - 413, 412, 256, 253, 266, 409, 410, 404, 397, 407, - - 258, 260, 404, 270, 264, 265, 403, 276, 393, 391, - 270, 271, 282, 402, 276, 279, 289, 401, 389, 392, - 281, 286, 396, 294, 288, 308, 395, 299, 377, 90, - 293, 313, 305, 388, 301, 225, 450, 311, 387, 374, - 311, 373, 313, 329, 363, 322, 331, 335, 326, 363, - 337, 450, 329, 335, 328, 333, 307, 337, 341, 304, - 342, 254, 242, 345, 237, 346, 349, 220, 350, 197, - 185, 353, 180, 354, 168, 160, 153, 143, 131, 126, - 450, 0, 450, 368, 124, 114, 374, 376, 378, 380, - 385, 391, 396, 109, 399, 401, 403, 95 - + 0, 0, 27, 0, 54, 0, 566, 567, 563, 567, + 560, 560, 0, 567, 0, 567, 0, 70, 567, 567, + 74, 76, 72, 88, 550, 0, 567, 557, 75, 84, + 567, 89, 109, 567, 0, 136, 539, 542, 93, 150, + 0, 554, 0, 0, 567, 0, 170, 195, 0, 222, + 536, 539, 96, 236, 553, 550, 550, 567, 0, 0, + 0, 540, 537, 90, 538, 0, 528, 85, 156, 109, + 567, 0, 544, 126, 157, 103, 169, 533, 532, 0, + 262, 0, 523, 521, 136, 567, 0, 539, 0, 0, + 282, 173, 528, 527, 0, 307, 0, 518, 516, 176, + + 526, 525, 163, 168, 180, 522, 523, 517, 510, 191, + 518, 519, 513, 506, 514, 218, 270, 240, 513, 280, + 503, 501, 510, 283, 500, 498, 287, 509, 279, 284, + 292, 508, 496, 499, 303, 505, 493, 496, 500, 323, + 315, 336, 499, 328, 488, 195, 497, 329, 486, 222, + 238, 497, 325, 294, 567, 334, 496, 488, 336, 488, + 475, 478, 339, 343, 472, 341, 354, 470, 346, 359, + 350, 465, 361, 567, 353, 463, 354, 459, 457, 358, + 456, 359, 455, 363, 366, 450, 367, 442, 370, 434, + 425, 371, 414, 374, 413, 375, 378, 409, 379, 407, + + 382, 401, 397, 383, 308, 386, 296, 387, 263, 260, + 251, 213, 184, 181, 152, 147, 132, 567, 0, 0, + 567, 401, 409, 417, 425, 427, 429, 431, 437, 444, + 452, 460, 466, 474, 482, 490, 498, 119 } ; -static yyconst short int yy_def[199] = +static yyconst short int yy_def[239] = { 0, - 183, 1, 183, 3, 183, 5, 183, 183, 183, 183, - 183, 184, 185, 183, 186, 183, 183, 187, 188, 183, - 183, 189, 189, 23, 183, 190, 191, 183, 191, 183, - 183, 183, 191, 192, 183, 183, 191, 183, 38, 38, - 193, 38, 194, 183, 194, 195, 196, 196, 48, 197, - 183, 183, 184, 183, 185, 186, 187, 188, 183, 188, - 190, 198, 23, 23, 23, 183, 183, 191, 191, 30, - 31, 192, 35, 191, 35, 42, 183, 38, 38, 38, - 183, 183, 194, 195, 195, 197, 48, 48, 48, 183, - 188, 198, 23, 23, 191, 35, 77, 38, 38, 195, - - 48, 48, 183, 183, 23, 23, 191, 191, 38, 38, - 48, 48, 183, 183, 23, 23, 191, 191, 38, 38, - 48, 48, 183, 183, 23, 23, 191, 191, 38, 38, - 48, 48, 183, 183, 23, 183, 183, 191, 191, 38, - 48, 183, 183, 126, 191, 191, 38, 132, 183, 183, - 183, 183, 191, 191, 183, 183, 191, 191, 183, 183, - 191, 191, 183, 183, 191, 191, 183, 183, 191, 191, - 183, 183, 191, 191, 183, 183, 191, 191, 183, 191, - 183, 191, 0, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183 - + 221, 1, 221, 3, 221, 5, 221, 221, 221, 221, + 221, 222, 223, 221, 224, 221, 225, 226, 221, 221, + 227, 227, 22, 221, 228, 229, 221, 229, 230, 231, + 221, 232, 221, 221, 229, 221, 36, 36, 233, 36, + 234, 234, 234, 235, 221, 236, 237, 221, 234, 221, + 50, 50, 234, 50, 221, 221, 222, 221, 223, 224, + 225, 226, 221, 226, 228, 238, 22, 22, 22, 221, + 221, 229, 229, 230, 231, 232, 33, 229, 33, 40, + 221, 36, 36, 36, 221, 221, 234, 234, 235, 236, + 237, 48, 234, 48, 54, 221, 50, 50, 50, 221, + + 226, 238, 22, 22, 229, 33, 81, 36, 36, 234, + 48, 96, 50, 50, 221, 221, 22, 22, 229, 229, + 36, 36, 234, 234, 50, 50, 221, 221, 22, 22, + 229, 229, 36, 36, 234, 234, 50, 50, 221, 221, + 22, 22, 229, 229, 36, 36, 234, 234, 50, 50, + 221, 221, 22, 221, 221, 229, 229, 36, 234, 234, + 50, 221, 221, 142, 229, 229, 36, 234, 234, 50, + 221, 221, 221, 221, 229, 229, 234, 234, 221, 221, + 229, 229, 234, 234, 221, 221, 229, 229, 234, 234, + 221, 221, 229, 229, 234, 234, 221, 221, 229, 229, + + 234, 234, 221, 221, 229, 229, 234, 234, 221, 221, + 229, 229, 234, 234, 221, 229, 234, 221, 229, 234, + 0, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221 } ; -static yyconst short int yy_nxt[478] = +static yyconst short int yy_nxt[595] = { 0, 8, 9, 10, 11, 12, 13, 14, 8, 15, 16, - 8, 17, 18, 19, 20, 21, 22, 22, 22, 23, - 22, 24, 22, 22, 25, 8, 26, 27, 9, 28, - 29, 27, 30, 27, 27, 31, 32, 27, 33, 34, - 35, 36, 37, 38, 38, 38, 39, 38, 40, 38, - 38, 41, 27, 42, 8, 9, 10, 11, 43, 13, - 8, 44, 15, 16, 45, 17, 18, 46, 20, 21, - 47, 47, 47, 48, 47, 49, 47, 47, 25, 45, - 50, 59, 68, 60, 61, 62, 61, 62, 65, 66, - 67, 136, 63, 68, 81, 67, 64, 59, 92, 85, - - 61, 89, 61, 68, 137, 87, 68, 68, 68, 68, - 68, 68, 83, 70, 68, 68, 70, 56, 68, 70, - 70, 70, 70, 70, 70, 70, 70, 55, 70, 70, - 68, 63, 93, 68, 68, 68, 68, 68, 68, 182, - 71, 68, 68, 71, 181, 68, 71, 71, 71, 71, - 71, 71, 71, 71, 173, 71, 71, 68, 66, 67, - 68, 68, 68, 68, 68, 68, 180, 73, 74, 68, - 75, 171, 68, 73, 73, 73, 73, 73, 73, 73, - 73, 179, 73, 73, 68, 66, 67, 68, 68, 68, - 68, 68, 68, 177, 76, 77, 68, 78, 175, 68, - - 78, 78, 78, 78, 78, 78, 78, 78, 165, 78, - 76, 76, 86, 62, 76, 76, 76, 76, 76, 76, - 76, 76, 68, 76, 86, 62, 136, 59, 86, 91, - 63, 163, 94, 68, 88, 68, 59, 73, 100, 137, - 86, 68, 87, 101, 68, 68, 68, 68, 68, 68, - 169, 97, 68, 68, 97, 167, 68, 97, 97, 97, - 97, 97, 97, 97, 97, 157, 97, 97, 87, 103, - 102, 104, 105, 63, 111, 106, 63, 107, 87, 108, - 87, 103, 112, 114, 63, 63, 115, 107, 116, 118, - 87, 87, 121, 123, 122, 124, 63, 126, 125, 63, - - 127, 87, 128, 131, 132, 123, 87, 134, 63, 136, - 127, 135, 139, 87, 136, 155, 141, 142, 143, 144, - 161, 63, 137, 145, 146, 142, 150, 137, 63, 148, - 151, 87, 151, 87, 145, 154, 151, 155, 151, 156, - 157, 159, 158, 152, 155, 152, 160, 145, 157, 152, - 162, 152, 163, 165, 164, 166, 163, 165, 168, 170, - 171, 173, 172, 174, 171, 173, 176, 178, 53, 53, - 53, 53, 53, 53, 57, 142, 153, 57, 57, 58, - 58, 63, 63, 61, 61, 68, 149, 68, 68, 68, - 68, 72, 147, 72, 72, 72, 72, 82, 127, 123, - - 140, 82, 84, 84, 87, 87, 86, 86, 138, 133, - 130, 129, 107, 103, 120, 119, 117, 113, 59, 110, - 109, 77, 73, 62, 59, 87, 62, 183, 99, 98, - 96, 95, 69, 63, 62, 90, 183, 54, 52, 51, - 62, 80, 79, 69, 62, 54, 52, 51, 183, 7, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183 + 8, 8, 17, 18, 19, 20, 21, 21, 21, 22, + 21, 23, 21, 21, 24, 8, 25, 26, 9, 27, + 28, 26, 29, 26, 26, 30, 31, 26, 26, 32, + 33, 34, 35, 36, 36, 36, 37, 36, 38, 36, + 36, 39, 26, 40, 41, 9, 10, 42, 43, 44, + 41, 45, 46, 16, 41, 41, 47, 48, 19, 49, + 50, 50, 50, 51, 50, 52, 50, 50, 53, 41, + 54, 63, 72, 64, 65, 66, 65, 66, 69, 70, + 71, 72, 67, 72, 85, 71, 68, 70, 71, 59, + + 65, 63, 65, 101, 72, 67, 103, 72, 60, 72, + 70, 71, 72, 72, 72, 72, 72, 72, 72, 77, + 78, 72, 79, 102, 72, 77, 77, 77, 77, 77, + 77, 77, 77, 72, 77, 77, 72, 70, 71, 72, + 72, 72, 72, 72, 72, 220, 80, 81, 72, 82, + 59, 72, 82, 82, 82, 82, 82, 82, 82, 82, + 219, 82, 80, 80, 72, 218, 80, 80, 80, 80, + 80, 80, 80, 80, 87, 80, 67, 61, 104, 117, + 72, 60, 77, 67, 87, 87, 92, 115, 67, 116, + 118, 119, 207, 120, 87, 87, 154, 217, 87, 87, + + 87, 87, 123, 87, 124, 92, 93, 87, 94, 155, + 87, 92, 92, 92, 92, 92, 92, 92, 92, 87, + 92, 92, 87, 154, 205, 87, 87, 87, 87, 115, + 87, 128, 95, 96, 87, 97, 155, 87, 97, 97, + 97, 97, 97, 97, 97, 97, 87, 97, 95, 95, + 162, 163, 95, 95, 95, 95, 95, 95, 95, 95, + 67, 95, 72, 130, 216, 72, 72, 72, 72, 72, + 72, 203, 107, 72, 72, 107, 215, 72, 107, 107, + 107, 107, 107, 107, 107, 107, 87, 107, 107, 61, + 67, 119, 129, 132, 123, 154, 136, 87, 139, 67, + + 140, 141, 142, 143, 67, 144, 87, 87, 155, 213, + 87, 87, 87, 87, 147, 87, 148, 112, 87, 87, + 112, 211, 87, 112, 112, 112, 112, 112, 112, 112, + 112, 87, 112, 112, 139, 67, 152, 154, 153, 143, + 147, 157, 160, 164, 173, 67, 165, 166, 168, 169, + 155, 162, 172, 165, 176, 173, 67, 174, 168, 178, + 173, 179, 173, 180, 181, 183, 182, 184, 174, 179, + 181, 186, 188, 174, 183, 174, 190, 191, 193, 192, + 194, 195, 191, 196, 198, 193, 195, 200, 202, 203, + 205, 204, 206, 207, 203, 208, 210, 205, 207, 212, + + 214, 57, 57, 57, 57, 57, 57, 57, 57, 59, + 209, 59, 195, 59, 59, 59, 59, 60, 193, 60, + 191, 60, 60, 60, 60, 61, 201, 199, 61, 61, + 61, 62, 62, 67, 67, 65, 65, 72, 197, 72, + 72, 72, 72, 72, 74, 183, 74, 74, 74, 74, + 74, 74, 75, 181, 75, 75, 75, 75, 75, 75, + 76, 179, 76, 76, 76, 76, 76, 86, 189, 187, + 185, 168, 86, 86, 87, 165, 87, 162, 87, 87, + 87, 87, 89, 177, 89, 175, 89, 89, 89, 89, + 90, 171, 90, 170, 90, 90, 90, 90, 91, 147, + + 91, 91, 91, 91, 91, 91, 167, 143, 139, 161, + 159, 158, 156, 151, 150, 149, 123, 146, 145, 119, + 115, 138, 137, 135, 134, 133, 131, 127, 126, 125, + 96, 92, 122, 121, 81, 77, 66, 63, 114, 113, + 111, 110, 88, 109, 108, 106, 105, 73, 67, 66, + 100, 221, 58, 56, 55, 99, 98, 88, 84, 83, + 73, 66, 58, 56, 55, 221, 7, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221 + } ; -static yyconst short int yy_chk[478] = +static yyconst short int yy_chk[595] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -467,50 +494,64 @@ static yyconst short int yy_chk[478] = 3, 3, 3, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 19, 34, 19, 22, 22, 23, 23, 24, 25, - 25, 130, 24, 34, 41, 41, 23, 46, 198, 46, - - 22, 49, 23, 30, 130, 49, 30, 30, 30, 30, - 30, 30, 194, 30, 30, 30, 30, 186, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 185, 30, 30, - 31, 64, 64, 31, 31, 31, 31, 31, 31, 180, - 31, 31, 31, 31, 179, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 178, 31, 31, 35, 66, 66, - 35, 35, 35, 35, 35, 35, 177, 35, 35, 35, - 35, 176, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 175, 35, 35, 38, 81, 81, 38, 38, 38, - 38, 38, 38, 173, 38, 38, 38, 38, 171, 38, - - 38, 38, 38, 38, 38, 38, 38, 38, 170, 38, - 38, 42, 47, 47, 42, 42, 42, 42, 42, 42, - 42, 42, 72, 42, 48, 48, 136, 60, 47, 60, - 65, 168, 65, 72, 48, 73, 85, 73, 85, 136, - 48, 77, 88, 88, 77, 77, 77, 77, 77, 77, - 165, 77, 77, 77, 77, 163, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 162, 77, 77, 89, 90, - 89, 90, 93, 94, 101, 94, 93, 95, 101, 95, - 102, 104, 102, 104, 105, 106, 105, 108, 106, 108, - 111, 112, 111, 113, 112, 113, 115, 116, 115, 116, - - 117, 121, 117, 121, 122, 124, 122, 124, 125, 126, - 128, 125, 128, 131, 132, 160, 131, 133, 133, 135, - 157, 135, 126, 138, 138, 143, 143, 132, 126, 141, - 144, 141, 147, 132, 146, 146, 148, 149, 151, 149, - 153, 155, 153, 144, 156, 147, 156, 154, 158, 148, - 158, 151, 159, 161, 159, 161, 164, 166, 164, 166, - 167, 169, 167, 169, 172, 174, 172, 174, 184, 184, - 184, 184, 184, 184, 187, 150, 145, 187, 187, 188, - 188, 189, 189, 190, 190, 191, 142, 191, 191, 191, - 191, 192, 140, 192, 192, 192, 192, 193, 139, 134, - - 129, 193, 195, 195, 196, 196, 197, 197, 127, 123, - 120, 119, 118, 114, 110, 109, 107, 103, 100, 99, - 98, 97, 96, 92, 91, 87, 86, 84, 80, 79, - 75, 74, 69, 63, 61, 59, 58, 53, 52, 51, - 50, 40, 39, 29, 26, 12, 11, 9, 7, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183 + 5, 18, 29, 18, 21, 21, 22, 22, 23, 24, + 24, 30, 23, 32, 39, 39, 22, 53, 53, 29, + + 21, 64, 22, 64, 32, 68, 68, 76, 30, 33, + 70, 70, 33, 33, 33, 33, 33, 33, 76, 33, + 33, 33, 33, 238, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 74, 33, 33, 36, 85, 85, 36, + 36, 36, 36, 36, 36, 217, 36, 36, 36, 36, + 74, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 216, 36, 36, 40, 75, 215, 40, 40, 40, 40, + 40, 40, 40, 40, 47, 40, 69, 47, 69, 103, + 77, 75, 77, 103, 92, 47, 92, 100, 104, 100, + 104, 105, 214, 105, 47, 48, 146, 213, 48, 48, + + 48, 48, 110, 48, 110, 48, 48, 48, 48, 146, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 50, 150, 212, 50, 50, 50, 50, 116, + 50, 116, 50, 50, 50, 50, 150, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 54, + 151, 151, 54, 54, 54, 54, 54, 54, 54, 54, + 118, 54, 81, 118, 211, 81, 81, 81, 81, 81, + 81, 210, 81, 81, 81, 81, 209, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 91, 81, 81, 91, + 117, 120, 117, 120, 124, 154, 124, 91, 127, 129, + + 127, 129, 130, 131, 130, 131, 91, 96, 154, 207, + 96, 96, 96, 96, 135, 96, 135, 96, 96, 96, + 96, 205, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 140, 141, 140, 142, 141, 144, + 148, 144, 148, 153, 164, 153, 156, 156, 159, 159, + 142, 163, 163, 166, 166, 167, 142, 164, 169, 169, + 170, 171, 173, 171, 175, 177, 175, 177, 167, 180, + 182, 180, 182, 170, 184, 173, 184, 185, 187, 185, + 187, 189, 192, 189, 192, 194, 196, 194, 196, 197, + 199, 197, 199, 201, 204, 201, 204, 206, 208, 206, + + 208, 222, 222, 222, 222, 222, 222, 222, 222, 223, + 203, 223, 202, 223, 223, 223, 223, 224, 200, 224, + 198, 224, 224, 224, 224, 225, 195, 193, 225, 225, + 225, 226, 226, 227, 227, 228, 228, 229, 191, 229, + 229, 229, 229, 229, 230, 190, 230, 230, 230, 230, + 230, 230, 231, 188, 231, 231, 231, 231, 231, 231, + 232, 186, 232, 232, 232, 232, 232, 233, 183, 181, + 179, 178, 233, 233, 234, 176, 234, 172, 234, 234, + 234, 234, 235, 168, 235, 165, 235, 235, 235, 235, + 236, 162, 236, 161, 236, 236, 236, 236, 237, 160, + + 237, 237, 237, 237, 237, 237, 158, 157, 152, 149, + 147, 145, 143, 139, 138, 137, 136, 134, 133, 132, + 128, 126, 125, 123, 122, 121, 119, 115, 114, 113, + 112, 111, 109, 108, 107, 106, 102, 101, 99, 98, + 94, 93, 88, 84, 83, 79, 78, 73, 67, 65, + 63, 62, 57, 56, 55, 52, 51, 42, 38, 37, + 28, 25, 12, 11, 9, 7, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221 + } ; static yy_state_type yy_last_accepting_state; @@ -617,7 +658,7 @@ extern void yyerror __P((char *)); #define GOTRUNAS 2 -#line 621 "lex.yy.c" +#line 662 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -768,9 +809,9 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 101 "parse.lex" +#line 102 "parse.lex" -#line 774 "lex.yy.c" +#line 815 "lex.yy.c" if ( yy_init ) { @@ -821,13 +862,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 184 ) + if ( yy_current_state >= 222 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 450 ); + while ( yy_base[yy_current_state] != 567 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -855,14 +896,14 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 102 "parse.lex" +#line 103 "parse.lex" { /* throw away space/tabs */ sawspace = TRUE; /* but remember for fill_args */ } YY_BREAK case 2: YY_RULE_SETUP -#line 106 "parse.lex" +#line 107 "parse.lex" { sawspace = TRUE; /* remember for fill_args */ ++sudolineno; @@ -871,7 +912,7 @@ YY_RULE_SETUP YY_BREAK case 3: YY_RULE_SETUP -#line 112 "parse.lex" +#line 113 "parse.lex" { LEXTRACE("QUOTEDCHAR "); fill_args(yytext + 1, 1, sawspace); @@ -880,7 +921,7 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 118 "parse.lex" +#line 119 "parse.lex" { BEGIN INITIAL; unput(*yytext); @@ -889,7 +930,7 @@ YY_RULE_SETUP YY_BREAK case 5: YY_RULE_SETUP -#line 124 "parse.lex" +#line 125 "parse.lex" { ++sudolineno; LEXTRACE("\n"); @@ -898,7 +939,7 @@ YY_RULE_SETUP YY_BREAK case 6: YY_RULE_SETUP -#line 130 "parse.lex" +#line 131 "parse.lex" { ++sudolineno; LEXTRACE("\n"); @@ -907,7 +948,7 @@ YY_RULE_SETUP YY_BREAK case 7: YY_RULE_SETUP -#line 136 "parse.lex" +#line 137 "parse.lex" { LEXTRACE("ARG "); fill_args(yytext, yyleng, sawspace); @@ -916,7 +957,7 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 142 "parse.lex" +#line 143 "parse.lex" { LEXTRACE(", "); return(','); @@ -924,7 +965,7 @@ YY_RULE_SETUP YY_BREAK case 9: YY_RULE_SETUP -#line 147 "parse.lex" +#line 148 "parse.lex" { if (yyleng % 2 == 1) return('!'); /* return '!' */ @@ -932,7 +973,7 @@ YY_RULE_SETUP YY_BREAK case 10: YY_RULE_SETUP -#line 152 "parse.lex" +#line 153 "parse.lex" { LEXTRACE("= "); return('='); @@ -940,7 +981,7 @@ YY_RULE_SETUP YY_BREAK case 11: YY_RULE_SETUP -#line 157 "parse.lex" +#line 158 "parse.lex" { LEXTRACE(": "); return(':'); @@ -948,77 +989,70 @@ YY_RULE_SETUP YY_BREAK case 12: YY_RULE_SETUP -#line 162 "parse.lex" -{ - return('.'); - } - YY_BREAK -case 13: -YY_RULE_SETUP -#line 166 "parse.lex" +#line 163 "parse.lex" { /* cmnd does not require passwd for this user */ LEXTRACE("NOPASSWD "); return(NOPASSWD); } YY_BREAK -case 14: +case 13: YY_RULE_SETUP -#line 172 "parse.lex" +#line 169 "parse.lex" { /* cmnd requires passwd for this user */ LEXTRACE("PASSWD "); return(PASSWD); } YY_BREAK -case 15: +case 14: YY_RULE_SETUP -#line 178 "parse.lex" +#line 175 "parse.lex" { /* netgroup */ fill(yytext, yyleng); return(NETGROUP); } YY_BREAK -case 16: +case 15: YY_RULE_SETUP -#line 184 "parse.lex" +#line 181 "parse.lex" { /* UN*X group */ fill(yytext, yyleng); return(USERGROUP); } YY_BREAK -case 17: +case 16: YY_RULE_SETUP -#line 190 "parse.lex" +#line 187 "parse.lex" { fill(yytext, yyleng); LEXTRACE("NTWKADDR "); return(NTWKADDR); } YY_BREAK -case 18: +case 17: YY_RULE_SETUP -#line 196 "parse.lex" +#line 193 "parse.lex" { fill(yytext, yyleng); LEXTRACE("FQHOST "); return(FQHOST); } YY_BREAK -case 19: +case 18: YY_RULE_SETUP -#line 202 "parse.lex" +#line 199 "parse.lex" { BEGIN GOTRUNAS; LEXTRACE("RUNAS "); return (RUNAS); } YY_BREAK -case 20: +case 19: YY_RULE_SETUP -#line 208 "parse.lex" +#line 205 "parse.lex" { /* Runas_Alias that user can run command as or ALL */ fill(yytext, yyleng); @@ -1031,9 +1065,9 @@ YY_RULE_SETUP } } YY_BREAK -case 21: +case 20: YY_RULE_SETUP -#line 220 "parse.lex" +#line 217 "parse.lex" { /* username/uid that user can run command as */ fill(yytext, yyleng); @@ -1041,14 +1075,14 @@ YY_RULE_SETUP return(NAME); } YY_BREAK -case 22: +case 21: YY_RULE_SETUP -#line 227 "parse.lex" +#line 224 "parse.lex" BEGIN INITIAL; YY_BREAK -case 23: +case 22: YY_RULE_SETUP -#line 230 "parse.lex" +#line 227 "parse.lex" { /* directories can't have args... */ if (yytext[yyleng - 1] == '/') { @@ -1062,9 +1096,9 @@ YY_RULE_SETUP } } /* a pathname */ YY_BREAK -case 24: +case 23: YY_RULE_SETUP -#line 243 "parse.lex" +#line 240 "parse.lex" { fill(yytext, yyleng); if (strcmp(yytext, "ALL") == 0) { @@ -1076,9 +1110,9 @@ YY_RULE_SETUP } } YY_BREAK -case 25: +case 24: YY_RULE_SETUP -#line 254 "parse.lex" +#line 251 "parse.lex" { fill(yytext, yyleng); if (strcmp(yytext, "Host_Alias") == 0) { @@ -1103,19 +1137,19 @@ YY_RULE_SETUP return(NAME); } YY_BREAK -case 26: +case 25: YY_RULE_SETUP -#line 278 "parse.lex" +#line 275 "parse.lex" { return(ERROR); } /* parse error */ YY_BREAK -case 27: +case 26: YY_RULE_SETUP -#line 282 "parse.lex" +#line 279 "parse.lex" ECHO; YY_BREAK -#line 1119 "lex.yy.c" +#line 1153 "lex.yy.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(GOTCMND): case YY_STATE_EOF(GOTRUNAS): @@ -1409,7 +1443,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 184 ) + if ( yy_current_state >= 222 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1444,11 +1478,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 184 ) + if ( yy_current_state >= 222 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 183); + yy_is_jam = (yy_current_state == 221); return yy_is_jam ? 0 : yy_current_state; } @@ -2003,7 +2037,7 @@ int main() return 0; } #endif -#line 282 "parse.lex" +#line 279 "parse.lex" static void fill(s, len) diff --git a/parse.lex b/parse.lex index 221ce413b..7ce19d11f 100644 --- a/parse.lex +++ b/parse.lex @@ -89,7 +89,8 @@ extern void yyerror __P((char *)); OCTET [[:digit:]]{1,3} DOTTEDQUAD {OCTET}(\.{OCTET}){3} -WORD [[:alnum:]_-]+ +HOSTNAME [[:alnum:]_-]+ +USERNAME [^:,\) \t\n]+ %e 4000 %p 6000 @@ -159,10 +160,6 @@ WORD [[:alnum:]_-]+ return(':'); } /* return ':' */ -\. { - return('.'); - } - NOPASSWD[[:blank:]]*: { /* cmnd does not require passwd for this user */ LEXTRACE("NOPASSWD "); @@ -175,13 +172,13 @@ PASSWD[[:blank:]]*: { return(PASSWD); } -\+{WORD} { +\+{USERNAME} { /* netgroup */ fill(yytext, yyleng); return(NETGROUP); } -\%{WORD} { +\%{USERNAME} { /* UN*X group */ fill(yytext, yyleng); return(USERGROUP); @@ -193,7 +190,7 @@ PASSWD[[:blank:]]*: { return(NTWKADDR); } -[[:alpha:]][[:alnum:]_-]*(\.{WORD})+ { +[[:alpha:]][[:alnum:]_-]*(\.{HOSTNAME})+ { fill(yytext, yyleng); LEXTRACE("FQHOST "); return(FQHOST); @@ -217,7 +214,7 @@ PASSWD[[:blank:]]*: { } } -#?{WORD} { +#?{USERNAME} { /* username/uid that user can run command as */ fill(yytext, yyleng); LEXTRACE("NAME "); -- 2.40.0