]> granicus.if.org Git - sudo/commitdiff
Break 'WORD' regexp def into HOSTNAME and USERNAME. These days a
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 12 Aug 1999 14:29:12 +0000 (14:29 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 12 Aug 1999 14:29:12 +0000 (14:29 +0000)
username can contain just about anything so be very permissive.
Also drop the unused \. punctuation.

lex.yy.c
parse.lex

index 96f1c82d8e59f76ef8d52be2f6024d75bf5fadab..dc34fffcf13f5177d44a2f1464b6289cb82fd3f7 100644 (file)
--- 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)
index 221ce413b16726beaa4df1caeeb63afd8d88b627..7ce19d11fc774f573265477909bab5997bb8961c 100644 (file)
--- 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:]]*: {
                            }
                        }
 
-<GOTRUNAS>#?{WORD}     {
+<GOTRUNAS>#?{USERNAME} {
                            /* username/uid that user can run command as */
                            fill(yytext, yyleng);
                            LEXTRACE("NAME ");