From 3a8c0ca966e8ae83483d7dedb4230e6b13fec9b2 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Sat, 28 Aug 1999 09:24:15 +0000 Subject: [PATCH] include strings.h everywhere we include string.h --- getspwuid.c | 3 ++ lex.yy.c | 67 ++++++++++++++-------------- parse.lex | 3 ++ parse.yacc | 3 ++ sudo.tab.c | 123 +++++++++++++++++++++++++++------------------------- 5 files changed, 107 insertions(+), 92 deletions(-) diff --git a/getspwuid.c b/getspwuid.c index 7efec5cc8..53fc8f1e6 100644 --- a/getspwuid.c +++ b/getspwuid.c @@ -41,6 +41,9 @@ #ifdef HAVE_STRING_H # include #endif /* HAVE_STRING_H */ +#ifdef HAVE_STRINGS_H +# include +#endif /* HAVE_STRINGS_H */ #ifdef HAVE_UNISTD_H # include #endif /* HAVE_UNISTD_H */ diff --git a/lex.yy.c b/lex.yy.c index 244e0dc95..8508e0eb5 100644 --- a/lex.yy.c +++ b/lex.yy.c @@ -805,6 +805,9 @@ char *yytext; #ifdef HAVE_STRING_H #include #endif /* HAVE_STRING_H */ +#ifdef HAVE_STRINGS_H +#include +#endif /* HAVE_STRINGS_H */ #if defined(HAVE_MALLOC_H) && !defined(STDC_HEADERS) #include #endif /* HAVE_MALLOC_H && !STDC_HEADERS */ @@ -846,7 +849,7 @@ extern void yyerror __P((char *)); #define GOTRUNAS 2 -#line 850 "lex.yy.c" +#line 853 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -997,9 +1000,9 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 102 "parse.lex" +#line 105 "parse.lex" -#line 1003 "lex.yy.c" +#line 1006 "lex.yy.c" if ( yy_init ) { @@ -1084,14 +1087,14 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 103 "parse.lex" +#line 106 "parse.lex" { /* throw away space/tabs */ sawspace = TRUE; /* but remember for fill_args */ } YY_BREAK case 2: YY_RULE_SETUP -#line 107 "parse.lex" +#line 110 "parse.lex" { sawspace = TRUE; /* remember for fill_args */ ++sudolineno; @@ -1100,7 +1103,7 @@ YY_RULE_SETUP YY_BREAK case 3: YY_RULE_SETUP -#line 113 "parse.lex" +#line 116 "parse.lex" { LEXTRACE("QUOTEDCHAR "); fill_args(yytext + 1, 1, sawspace); @@ -1109,7 +1112,7 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 119 "parse.lex" +#line 122 "parse.lex" { BEGIN INITIAL; unput(*yytext); @@ -1118,7 +1121,7 @@ YY_RULE_SETUP YY_BREAK case 5: YY_RULE_SETUP -#line 125 "parse.lex" +#line 128 "parse.lex" { ++sudolineno; LEXTRACE("\n"); @@ -1127,7 +1130,7 @@ YY_RULE_SETUP YY_BREAK case 6: YY_RULE_SETUP -#line 131 "parse.lex" +#line 134 "parse.lex" { ++sudolineno; LEXTRACE("\n"); @@ -1136,7 +1139,7 @@ YY_RULE_SETUP YY_BREAK case 7: YY_RULE_SETUP -#line 137 "parse.lex" +#line 140 "parse.lex" { LEXTRACE("ARG "); fill_args(yytext, yyleng, sawspace); @@ -1145,7 +1148,7 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 143 "parse.lex" +#line 146 "parse.lex" { LEXTRACE(", "); return(','); @@ -1153,7 +1156,7 @@ YY_RULE_SETUP YY_BREAK case 9: YY_RULE_SETUP -#line 148 "parse.lex" +#line 151 "parse.lex" { if (yyleng % 2 == 1) return('!'); /* return '!' */ @@ -1161,7 +1164,7 @@ YY_RULE_SETUP YY_BREAK case 10: YY_RULE_SETUP -#line 153 "parse.lex" +#line 156 "parse.lex" { LEXTRACE("= "); return('='); @@ -1169,7 +1172,7 @@ YY_RULE_SETUP YY_BREAK case 11: YY_RULE_SETUP -#line 158 "parse.lex" +#line 161 "parse.lex" { LEXTRACE(": "); return(':'); @@ -1177,7 +1180,7 @@ YY_RULE_SETUP YY_BREAK case 12: YY_RULE_SETUP -#line 163 "parse.lex" +#line 166 "parse.lex" { /* cmnd does not require passwd for this user */ LEXTRACE("NOPASSWD "); @@ -1186,7 +1189,7 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 169 "parse.lex" +#line 172 "parse.lex" { /* cmnd requires passwd for this user */ LEXTRACE("PASSWD "); @@ -1195,7 +1198,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 175 "parse.lex" +#line 178 "parse.lex" { /* netgroup */ fill(yytext, yyleng); @@ -1204,7 +1207,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 181 "parse.lex" +#line 184 "parse.lex" { /* UN*X group */ fill(yytext, yyleng); @@ -1213,7 +1216,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 187 "parse.lex" +#line 190 "parse.lex" { fill(yytext, yyleng); LEXTRACE("NTWKADDR "); @@ -1222,7 +1225,7 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 193 "parse.lex" +#line 196 "parse.lex" { fill(yytext, yyleng); LEXTRACE("NTWKADDR "); @@ -1231,7 +1234,7 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 199 "parse.lex" +#line 202 "parse.lex" { fill(yytext, yyleng); LEXTRACE("FQHOST "); @@ -1240,7 +1243,7 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 205 "parse.lex" +#line 208 "parse.lex" { BEGIN GOTRUNAS; LEXTRACE("RUNAS "); @@ -1249,7 +1252,7 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 211 "parse.lex" +#line 214 "parse.lex" { /* Runas_Alias user can run command as or ALL */ if (strcmp(yytext, "ALL") == 0) { @@ -1264,7 +1267,7 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 223 "parse.lex" +#line 226 "parse.lex" { /* username/uid that user can run command as */ fill(yytext, yyleng); @@ -1274,12 +1277,12 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 230 "parse.lex" +#line 233 "parse.lex" BEGIN INITIAL; YY_BREAK case 23: YY_RULE_SETUP -#line 233 "parse.lex" +#line 236 "parse.lex" { /* directories can't have args... */ if (yytext[yyleng - 1] == '/') { @@ -1295,7 +1298,7 @@ YY_RULE_SETUP YY_BREAK case 24: YY_RULE_SETUP -#line 246 "parse.lex" +#line 249 "parse.lex" { if (strcmp(yytext, "ALL") == 0) { LEXTRACE("ALL "); @@ -1309,7 +1312,7 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 257 "parse.lex" +#line 260 "parse.lex" { fill(yytext, yyleng); if (strcmp(yytext, "Host_Alias") == 0) { @@ -1336,17 +1339,17 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 281 "parse.lex" +#line 284 "parse.lex" { return(ERROR); } /* parse error */ YY_BREAK case 27: YY_RULE_SETUP -#line 285 "parse.lex" +#line 288 "parse.lex" ECHO; YY_BREAK -#line 1350 "lex.yy.c" +#line 1353 "lex.yy.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(GOTCMND): case YY_STATE_EOF(GOTRUNAS): @@ -2234,7 +2237,7 @@ int main() return 0; } #endif -#line 285 "parse.lex" +#line 288 "parse.lex" static void fill(s, len) diff --git a/parse.lex b/parse.lex index de7a545a8..96e5ea4ae 100644 --- a/parse.lex +++ b/parse.lex @@ -48,6 +48,9 @@ #ifdef HAVE_STRING_H #include #endif /* HAVE_STRING_H */ +#ifdef HAVE_STRINGS_H +#include +#endif /* HAVE_STRINGS_H */ #if defined(HAVE_MALLOC_H) && !defined(STDC_HEADERS) #include #endif /* HAVE_MALLOC_H && !STDC_HEADERS */ diff --git a/parse.yacc b/parse.yacc index 0f056312b..cf40829f6 100644 --- a/parse.yacc +++ b/parse.yacc @@ -58,6 +58,9 @@ #ifdef HAVE_STRING_H #include #endif /* HAVE_STRING_H */ +#ifdef HAVE_STRINGS_H +#include +#endif /* HAVE_STRINGS_H */ #if defined(HAVE_MALLOC_H) && !defined(STDC_HEADERS) #include #endif /* HAVE_MALLOC_H && !STDC_HEADERS */ diff --git a/sudo.tab.c b/sudo.tab.c index d6ee7e28f..7ced5446b 100644 --- a/sudo.tab.c +++ b/sudo.tab.c @@ -16,7 +16,7 @@ static char yyrcsid[] #define yyerrok (yyerrflag=0) #define YYRECOVERING() (yyerrflag!=0) #define YYPREFIX "yy" -#line 2 "./parse.yacc" +#line 2 "parse.yacc" /* * Copyright (c) 1996, 1998, 1999 Todd C. Miller * All rights reserved. @@ -76,6 +76,9 @@ static char yyrcsid[] #ifdef HAVE_STRING_H #include #endif /* HAVE_STRING_H */ +#ifdef HAVE_STRINGS_H +#include +#endif /* HAVE_STRINGS_H */ #if defined(HAVE_MALLOC_H) && !defined(STDC_HEADERS) #include #endif /* HAVE_MALLOC_H && !STDC_HEADERS */ @@ -220,14 +223,14 @@ yyerror(s) } parse_error = TRUE; } -#line 207 "./parse.yacc" +#line 210 "parse.yacc" typedef union { char *string; int BOOLEAN; struct sudo_command command; int tok; } YYSTYPE; -#line 231 "sudo.tab.c" +#line 234 "sudo.tab.c" #define COMMAND 257 #define ALIAS 258 #define NTWKADDR 259 @@ -532,7 +535,7 @@ short *yyss; short *yysslim; YYSTYPE *yyvs; int yystacksize; -#line 765 "./parse.yacc" +#line 768 "parse.yacc" #define MOREALIASES (32) aliasinfo *aliases = NULL; @@ -883,7 +886,7 @@ init_parser() if (printmatches == TRUE) expand_match_list(); } -#line 887 "sudo.tab.c" +#line 890 "sudo.tab.c" /* allocate initial stack or double stack size, up to YYMAXDEPTH */ #if defined(__cplusplus) || __STDC__ static int yygrowstack(void) @@ -1064,42 +1067,42 @@ yyreduce: switch (yyn) { case 3: -#line 252 "./parse.yacc" +#line 255 "parse.yacc" { ; } break; case 4: -#line 254 "./parse.yacc" +#line 257 "parse.yacc" { yyerrok; } break; case 5: -#line 255 "./parse.yacc" +#line 258 "parse.yacc" { push; } break; case 6: -#line 255 "./parse.yacc" +#line 258 "parse.yacc" { while (top && user_matches != TRUE) pop; } break; case 7: -#line 260 "./parse.yacc" +#line 263 "parse.yacc" { ; } break; case 8: -#line 262 "./parse.yacc" +#line 265 "parse.yacc" { ; } break; case 9: -#line 264 "./parse.yacc" +#line 267 "parse.yacc" { ; } break; case 10: -#line 266 "./parse.yacc" +#line 269 "parse.yacc" { ; } break; case 13: -#line 274 "./parse.yacc" +#line 277 "parse.yacc" { /* * We already did a push if necessary in @@ -1112,27 +1115,27 @@ case 13: } break; case 14: -#line 286 "./parse.yacc" +#line 289 "parse.yacc" { if (yyvsp[0].BOOLEAN != -1) host_matches = yyvsp[0].BOOLEAN; } break; case 15: -#line 290 "./parse.yacc" +#line 293 "parse.yacc" { if (yyvsp[0].BOOLEAN != -1) host_matches = ! yyvsp[0].BOOLEAN; } break; case 16: -#line 295 "./parse.yacc" +#line 298 "parse.yacc" { yyval.BOOLEAN = TRUE; } break; case 17: -#line 298 "./parse.yacc" +#line 301 "parse.yacc" { if (addr_matches(yyvsp[0].string)) yyval.BOOLEAN = TRUE; @@ -1142,7 +1145,7 @@ case 17: } break; case 18: -#line 305 "./parse.yacc" +#line 308 "parse.yacc" { if (netgr_matches(yyvsp[0].string, user_host, NULL)) yyval.BOOLEAN = TRUE; @@ -1152,7 +1155,7 @@ case 18: } break; case 19: -#line 312 "./parse.yacc" +#line 315 "parse.yacc" { if (strcasecmp(user_shost, yyvsp[0].string) == 0) yyval.BOOLEAN = TRUE; @@ -1162,7 +1165,7 @@ case 19: } break; case 20: -#line 319 "./parse.yacc" +#line 322 "parse.yacc" { if (strcasecmp(user_host, yyvsp[0].string) == 0) yyval.BOOLEAN = TRUE; @@ -1172,7 +1175,7 @@ case 20: } break; case 21: -#line 326 "./parse.yacc" +#line 329 "parse.yacc" { aliasinfo *aip = find_alias(yyvsp[0].string, HOST_ALIAS); @@ -1197,7 +1200,7 @@ case 21: } break; case 24: -#line 354 "./parse.yacc" +#line 357 "parse.yacc" { /* * Push the entry onto the stack if it is worth @@ -1220,14 +1223,14 @@ case 24: } break; case 25: -#line 376 "./parse.yacc" +#line 379 "parse.yacc" { if (yyvsp[0].BOOLEAN != -1) cmnd_matches = yyvsp[0].BOOLEAN; } break; case 26: -#line 380 "./parse.yacc" +#line 383 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1239,14 +1242,14 @@ case 26: } break; case 27: -#line 388 "./parse.yacc" +#line 391 "parse.yacc" { if (yyvsp[0].BOOLEAN != -1) cmnd_matches = ! yyvsp[0].BOOLEAN; } break; case 28: -#line 394 "./parse.yacc" +#line 397 "parse.yacc" { if (printmatches == TRUE && host_matches == TRUE && user_matches == TRUE) { @@ -1272,18 +1275,18 @@ case 28: } break; case 29: -#line 417 "./parse.yacc" +#line 420 "parse.yacc" { ; } break; case 32: -#line 424 "./parse.yacc" +#line 427 "parse.yacc" { if (yyvsp[0].BOOLEAN != -1) runas_matches = yyvsp[0].BOOLEAN; } break; case 33: -#line 428 "./parse.yacc" +#line 431 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1295,14 +1298,14 @@ case 33: } break; case 34: -#line 436 "./parse.yacc" +#line 439 "parse.yacc" { if (yyvsp[0].BOOLEAN != -1) runas_matches = ! yyvsp[0].BOOLEAN; } break; case 35: -#line 441 "./parse.yacc" +#line 444 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1319,7 +1322,7 @@ case 35: } break; case 36: -#line 455 "./parse.yacc" +#line 458 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1336,7 +1339,7 @@ case 36: } break; case 37: -#line 469 "./parse.yacc" +#line 472 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1353,7 +1356,7 @@ case 37: } break; case 38: -#line 483 "./parse.yacc" +#line 486 "parse.yacc" { aliasinfo *aip = find_alias(yyvsp[0].string, RUNAS_ALIAS); @@ -1385,7 +1388,7 @@ case 38: } break; case 39: -#line 512 "./parse.yacc" +#line 515 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1398,7 +1401,7 @@ case 39: } break; case 40: -#line 524 "./parse.yacc" +#line 527 "parse.yacc" { /* Inherit NOPASSWD/PASSWD status. */ if (printmatches == TRUE && host_matches == TRUE && @@ -1411,7 +1414,7 @@ case 40: } break; case 41: -#line 534 "./parse.yacc" +#line 537 "parse.yacc" { no_passwd = TRUE; if (printmatches == TRUE && host_matches == TRUE && @@ -1420,7 +1423,7 @@ case 41: } break; case 42: -#line 540 "./parse.yacc" +#line 543 "parse.yacc" { no_passwd = FALSE; if (printmatches == TRUE && host_matches == TRUE && @@ -1429,7 +1432,7 @@ case 42: } break; case 43: -#line 548 "./parse.yacc" +#line 551 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) @@ -1449,7 +1452,7 @@ case 43: } break; case 44: -#line 565 "./parse.yacc" +#line 568 "parse.yacc" { aliasinfo *aip; @@ -1481,7 +1484,7 @@ case 44: } break; case 45: -#line 594 "./parse.yacc" +#line 597 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) { @@ -1510,11 +1513,11 @@ case 45: } break; case 48: -#line 626 "./parse.yacc" +#line 629 "parse.yacc" { push; } break; case 49: -#line 626 "./parse.yacc" +#line 629 "parse.yacc" { if ((host_matches != -1 || pedantic) && !add_alias(yyvsp[-3].string, HOST_ALIAS, host_matches)) @@ -1523,7 +1526,7 @@ case 49: } break; case 54: -#line 642 "./parse.yacc" +#line 645 "parse.yacc" { push; if (printmatches == TRUE) { @@ -1536,7 +1539,7 @@ case 54: } break; case 55: -#line 651 "./parse.yacc" +#line 654 "parse.yacc" { if ((cmnd_matches != -1 || pedantic) && !add_alias(yyvsp[-3].string, CMND_ALIAS, cmnd_matches)) @@ -1549,11 +1552,11 @@ case 55: } break; case 56: -#line 663 "./parse.yacc" +#line 666 "parse.yacc" { ; } break; case 60: -#line 671 "./parse.yacc" +#line 674 "parse.yacc" { push; if (printmatches == TRUE) { @@ -1566,7 +1569,7 @@ case 60: } break; case 61: -#line 680 "./parse.yacc" +#line 683 "parse.yacc" { if ((runas_matches != -1 || pedantic) && !add_alias(yyvsp[-3].string, RUNAS_ALIAS, runas_matches)) @@ -1579,11 +1582,11 @@ case 61: } break; case 64: -#line 696 "./parse.yacc" +#line 699 "parse.yacc" { push; } break; case 65: -#line 696 "./parse.yacc" +#line 699 "parse.yacc" { if ((user_matches != -1 || pedantic) && !add_alias(yyvsp[-3].string, USER_ALIAS, user_matches)) @@ -1593,25 +1596,25 @@ case 65: } break; case 66: -#line 705 "./parse.yacc" +#line 708 "parse.yacc" { ; } break; case 68: -#line 709 "./parse.yacc" +#line 712 "parse.yacc" { if (yyvsp[0].BOOLEAN != -1) user_matches = yyvsp[0].BOOLEAN; } break; case 69: -#line 713 "./parse.yacc" +#line 716 "parse.yacc" { if (yyvsp[0].BOOLEAN != -1) user_matches = ! yyvsp[0].BOOLEAN; } break; case 70: -#line 718 "./parse.yacc" +#line 721 "parse.yacc" { if (strcmp(yyvsp[0].string, user_name) == 0) yyval.BOOLEAN = TRUE; @@ -1621,7 +1624,7 @@ case 70: } break; case 71: -#line 725 "./parse.yacc" +#line 728 "parse.yacc" { if (usergr_matches(yyvsp[0].string, user_name)) yyval.BOOLEAN = TRUE; @@ -1631,7 +1634,7 @@ case 71: } break; case 72: -#line 732 "./parse.yacc" +#line 735 "parse.yacc" { if (netgr_matches(yyvsp[0].string, NULL, user_name)) yyval.BOOLEAN = TRUE; @@ -1641,7 +1644,7 @@ case 72: } break; case 73: -#line 739 "./parse.yacc" +#line 742 "parse.yacc" { aliasinfo *aip = find_alias(yyvsp[0].string, USER_ALIAS); @@ -1664,12 +1667,12 @@ case 73: } break; case 74: -#line 759 "./parse.yacc" +#line 762 "parse.yacc" { yyval.BOOLEAN = TRUE; } break; -#line 1673 "sudo.tab.c" +#line 1676 "sudo.tab.c" } yyssp -= yym; yystate = *yyssp; -- 2.40.0