Use stdint.h to get SIZE_MAX as inttypes.h on some pre-C99 HP-UX

systems doesn't include stdint.h itself.
This commit is contained in:
Todd C. Miller
2015-02-03 10:00:30 -07:00
parent a17d562fdb
commit a9bf105eda
9 changed files with 175 additions and 273 deletions

4
configure vendored
View File

@@ -20936,7 +20936,9 @@ _ACEOF
ac_fn_c_check_decl "$LINENO" "SIZE_MAX" "ac_cv_have_decl_SIZE_MAX" " ac_fn_c_check_decl "$LINENO" "SIZE_MAX" "ac_cv_have_decl_SIZE_MAX" "
#include <sys/types.h> #include <sys/types.h>
#include <limits.h> #include <limits.h>
#ifdef HAVE_INTTYPES_H #if defined(HAVE_STDINT_H)
# include <stdint.h>
#elif defined(HAVE_INTTYPES_H)
# include <inttypes.h> # include <inttypes.h>
#endif #endif

View File

@@ -2970,7 +2970,9 @@ AC_CHECK_DECLS([OPEN_MAX, LLONG_MAX, LLONG_MIN, ULLONG_MAX, PATH_MAX, HOST_NAME_
AC_CHECK_DECLS([SIZE_MAX], [], [], [ AC_CHECK_DECLS([SIZE_MAX], [], [], [
#include <sys/types.h> #include <sys/types.h>
#include <limits.h> #include <limits.h>
#ifdef HAVE_INTTYPES_H #if defined(HAVE_STDINT_H)
# include <stdint.h>
#elif defined(HAVE_INTTYPES_H)
# include <inttypes.h> # include <inttypes.h>
#endif #endif
]) ])

View File

@@ -43,7 +43,9 @@
#if defined(HAVE_MALLOC_H) && !defined(STDC_HEADERS) #if defined(HAVE_MALLOC_H) && !defined(STDC_HEADERS)
# include <malloc.h> # include <malloc.h>
#endif /* HAVE_MALLOC_H && !STDC_HEADERS */ #endif /* HAVE_MALLOC_H && !STDC_HEADERS */
#ifdef HAVE_INTTYPES_H #if defined(HAVE_STDINT_H)
# include <stdint.h>
#elif defined(HAVE_INTTYPES_H)
# include <inttypes.h> # include <inttypes.h>
#endif #endif
#include <limits.h> #include <limits.h>

View File

@@ -78,7 +78,9 @@
#ifdef HAVE_UNISTD_H #ifdef HAVE_UNISTD_H
# include <unistd.h> # include <unistd.h>
#endif /* HAVE_UNISTD_H */ #endif /* HAVE_UNISTD_H */
#ifdef HAVE_INTTYPES_H #if defined(HAVE_STDINT_H)
# include <stdint.h>
#elif defined(HAVE_INTTYPES_H)
# include <inttypes.h> # include <inttypes.h>
#endif #endif
#include <ctype.h> #include <ctype.h>

View File

@@ -41,7 +41,9 @@
#ifdef HAVE_UNISTD_H #ifdef HAVE_UNISTD_H
# include <unistd.h> # include <unistd.h>
#endif /* HAVE_UNISTD_H */ #endif /* HAVE_UNISTD_H */
#ifdef HAVE_INTTYPES_H #if defined(HAVE_STDINT_H)
# include <stdint.h>
#elif defined(HAVE_INTTYPES_H)
# include <inttypes.h> # include <inttypes.h>
#endif #endif
#ifdef HAVE_LOGIN_CAP_H #ifdef HAVE_LOGIN_CAP_H

View File

@@ -46,7 +46,9 @@
#ifdef HAVE_STRINGS_H #ifdef HAVE_STRINGS_H
# include <strings.h> # include <strings.h>
#endif /* HAVE_STRINGS_H */ #endif /* HAVE_STRINGS_H */
#ifdef HAVE_INTTYPES_H #if defined(HAVE_STDINT_H)
# include <stdint.h>
#elif defined(HAVE_INTTYPES_H)
# include <inttypes.h> # include <inttypes.h>
#endif #endif
#ifdef TIME_WITH_SYS_TIME #ifdef TIME_WITH_SYS_TIME
@@ -118,7 +120,7 @@ static int yyerror(const char *s);
static int yylex(void); static int yylex(void);
int yyparse(void); int yyparse(void);
#line 111 "getdate.y" #line 113 "getdate.y"
#ifndef YYSTYPE_DEFINED #ifndef YYSTYPE_DEFINED
#define YYSTYPE_DEFINED #define YYSTYPE_DEFINED
typedef union { typedef union {
@@ -126,7 +128,7 @@ typedef union {
enum _MERIDIAN Meridian; enum _MERIDIAN Meridian;
} YYSTYPE; } YYSTYPE;
#endif /* YYSTYPE_DEFINED */ #endif /* YYSTYPE_DEFINED */
#line 129 "getdate.c" #line 131 "getdate.c"
#define tAGO 257 #define tAGO 257
#define tDAY 258 #define tDAY 258
#define tDAYZONE 259 #define tDAYZONE 259
@@ -141,11 +143,7 @@ typedef union {
#define tZONE 268 #define tZONE 268
#define tDST 269 #define tDST 269
#define YYERRCODE 256 #define YYERRCODE 256
#if defined(__cplusplus) || defined(__STDC__)
const short yylhs[] = const short yylhs[] =
#else
short yylhs[] =
#endif
{ -1, { -1,
0, 0, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0, 2, 2, 2, 2, 2, 2, 3, 3,
3, 3, 3, 4, 4, 4, 6, 6, 6, 5, 3, 3, 3, 4, 4, 4, 6, 6, 6, 5,
@@ -153,11 +151,7 @@ short yylhs[] =
9, 9, 9, 9, 9, 9, 9, 9, 8, 1, 9, 9, 9, 9, 9, 9, 9, 9, 8, 1,
1, 1,
}; };
#if defined(__cplusplus) || defined(__STDC__)
const short yylen[] = const short yylen[] =
#else
short yylen[] =
#endif
{ 2, { 2,
0, 2, 1, 1, 1, 1, 1, 1, 2, 4, 0, 2, 1, 1, 1, 1, 1, 1, 2, 4,
4, 6, 6, 1, 1, 2, 1, 2, 2, 3, 4, 6, 6, 1, 1, 2, 1, 2, 2, 3,
@@ -165,11 +159,7 @@ short yylen[] =
2, 1, 2, 2, 1, 2, 2, 1, 1, 0, 2, 1, 2, 2, 1, 2, 2, 1, 1, 0,
1, 1,
}; };
#if defined(__cplusplus) || defined(__STDC__)
const short yydefred[] = const short yydefred[] =
#else
short yydefred[] =
#endif
{ 1, { 1,
0, 0, 15, 32, 0, 38, 35, 0, 0, 0, 0, 0, 15, 32, 0, 38, 35, 0, 0, 0,
2, 3, 4, 5, 6, 7, 8, 0, 18, 0, 2, 3, 4, 5, 6, 7, 8, 0, 18, 0,
@@ -177,50 +167,30 @@ short yydefred[] =
0, 0, 16, 28, 0, 23, 27, 22, 0, 0, 0, 0, 16, 28, 0, 23, 27, 22, 0, 0,
25, 41, 11, 0, 10, 0, 0, 21, 13, 12, 25, 41, 11, 0, 10, 0, 0, 21, 13, 12,
}; };
#if defined(__cplusplus) || defined(__STDC__)
const short yydgoto[] = const short yydgoto[] =
#else
short yydgoto[] =
#endif
{ 1, { 1,
45, 11, 12, 13, 14, 15, 16, 17, 18, 45, 11, 12, 13, 14, 15, 16, 17, 18,
}; };
#if defined(__cplusplus) || defined(__STDC__)
const short yysindex[] = const short yysindex[] =
#else
short yysindex[] =
#endif
{ 0, { 0,
-249, -38, 0, 0, -260, 0, 0, -240, -47, -248, -249, -38, 0, 0, -260, 0, 0, -240, -47, -248,
0, 0, 0, 0, 0, 0, 0, -237, 0, -18, 0, 0, 0, 0, 0, 0, 0, -237, 0, -18,
0, 0, 0, 0, 0, 0, -262, 0, 0, -239, 0, 0, 0, 0, 0, 0, -262, 0, 0, -239,
-238, -236, 0, 0, -235, 0, 0, 0, -56, -19, -238, -236, 0, 0, -235, 0, 0, 0, -56, -19,
0, 0, 0, -234, 0, -232, -258, 0, 0, 0,}; 0, 0, 0, -234, 0, -232, -258, 0, 0, 0,};
#if defined(__cplusplus) || defined(__STDC__)
const short yyrindex[] = const short yyrindex[] =
#else
short yyrindex[] =
#endif
{ 0, { 0,
0, 1, 0, 0, 0, 0, 0, 0, 69, 12, 0, 1, 0, 0, 0, 0, 0, 0, 69, 12,
0, 0, 0, 0, 0, 0, 0, 23, 0, 34, 0, 0, 0, 0, 0, 0, 0, 23, 0, 34,
0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 56, 45, 0, 0, 0, 0, 0, 0, 0, 0, 56, 45,
0, 0, 0, 0, 0, 0, 56, 0, 0, 0,}; 0, 0, 0, 0, 0, 0, 56, 0, 0, 0,};
#if defined(__cplusplus) || defined(__STDC__)
const short yygindex[] = const short yygindex[] =
#else
short yygindex[] =
#endif
{ 0, { 0,
-17, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, 0, 0, 0, 0, 0, 0,
}; };
#define YYTABLESIZE 337 #define YYTABLESIZE 337
#if defined(__cplusplus) || defined(__STDC__)
const short yytable[] = const short yytable[] =
#else
short yytable[] =
#endif
{ 32, { 32,
17, 44, 42, 36, 37, 19, 20, 49, 2, 3, 17, 44, 42, 36, 37, 19, 20, 49, 2, 3,
31, 14, 4, 5, 6, 7, 8, 9, 10, 34, 31, 14, 4, 5, 6, 7, 8, 9, 10, 34,
@@ -257,11 +227,7 @@ short yytable[] =
40, 0, 40, 40, 26, 26, 0, 39, 26, 26, 40, 0, 40, 40, 26, 26, 0, 39, 26, 26,
26, 26, 0, 0, 26, 39, 39, 26, 26, 0, 0, 26, 39, 39,
}; };
#if defined(__cplusplus) || defined(__STDC__)
const short yycheck[] = const short yycheck[] =
#else
short yycheck[] =
#endif
{ 47, { 47,
0, 58, 261, 266, 267, 44, 267, 266, 258, 259, 0, 58, 261, 266, 267, 44, 267, 266, 258, 259,
58, 0, 262, 263, 264, 265, 266, 267, 268, 257, 58, 0, 262, 263, 264, 265, 266, 267, 268, 257,
@@ -304,11 +270,7 @@ short yycheck[] =
#endif #endif
#define YYMAXTOKEN 269 #define YYMAXTOKEN 269
#if YYDEBUG #if YYDEBUG
#if defined(__cplusplus) || defined(__STDC__)
const char * const yyname[] = const char * const yyname[] =
#else
char *yyname[] =
#endif
{ {
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,"','",0,0,"'/'",0,0,0,0,0,0,0,0,0,0,"':'",0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,"','",0,0,"'/'",0,0,0,0,0,0,0,0,0,0,"':'",0,0,0,0,0,0,0,0,0,
@@ -320,11 +282,7 @@ char *yyname[] =
"tDAYZONE","tID","tMERIDIAN","tMINUTE_UNIT","tMONTH","tMONTH_UNIT","tSEC_UNIT", "tDAYZONE","tID","tMERIDIAN","tMINUTE_UNIT","tMONTH","tMONTH_UNIT","tSEC_UNIT",
"tSNUMBER","tUNUMBER","tZONE","tDST", "tSNUMBER","tUNUMBER","tZONE","tDST",
}; };
#if defined(__cplusplus) || defined(__STDC__)
const char * const yyrule[] = const char * const yyrule[] =
#else
char *yyrule[] =
#endif
{"$accept : spec", {"$accept : spec",
"spec :", "spec :",
"spec : spec item", "spec : spec item",
@@ -394,7 +352,7 @@ short *yyss;
short *yysslim; short *yysslim;
YYSTYPE *yyvs; YYSTYPE *yyvs;
unsigned int yystacksize; unsigned int yystacksize;
#line 330 "getdate.y" #line 332 "getdate.y"
/* Month and day table. */ /* Month and day table. */
static TABLE const MonthDayTable[] = { static TABLE const MonthDayTable[] = {
@@ -1016,13 +974,9 @@ main(int argc, char *argv[])
/* NOTREACHED */ /* NOTREACHED */
} }
#endif /* TEST */ #endif /* TEST */
#line 967 "getdate.c" #line 969 "getdate.c"
/* allocate initial stack or double stack size, up to YYMAXDEPTH */ /* allocate initial stack or double stack size, up to YYMAXDEPTH */
#if defined(__cplusplus) || defined(__STDC__)
static int yygrowstack(void) static int yygrowstack(void)
#else
static int yygrowstack()
#endif
{ {
unsigned int newsize; unsigned int newsize;
long sslen; long sslen;
@@ -1035,24 +989,22 @@ static int yygrowstack()
return -1; return -1;
else if ((newsize *= 2) > YYMAXDEPTH) else if ((newsize *= 2) > YYMAXDEPTH)
newsize = YYMAXDEPTH; newsize = YYMAXDEPTH;
sslen = yyssp - yyss;
#ifdef SIZE_MAX #ifdef SIZE_MAX
#define YY_SIZE_MAX SIZE_MAX #define YY_SIZE_MAX SIZE_MAX
#else #else
#ifdef __STDC__
#define YY_SIZE_MAX 0xffffffffU #define YY_SIZE_MAX 0xffffffffU
#else
#define YY_SIZE_MAX (unsigned int)0xffffffff
#endif #endif
#endif if (newsize && YY_SIZE_MAX / newsize < sizeof *newss)
if (YY_SIZE_MAX / newsize < sizeof *newss)
goto bail; goto bail;
sslen = yyssp - yyss;
newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) : newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) :
(short *)malloc(newsize * sizeof *newss); /* overflow check above */ (short *)malloc(newsize * sizeof *newss); /* overflow check above */
if (newss == NULL) if (newss == NULL)
goto bail; goto bail;
yyss = newss; yyss = newss;
yyssp = newss + sslen; yyssp = newss + sslen;
if (newsize && YY_SIZE_MAX / newsize < sizeof *newvs)
goto bail;
newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) : newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) :
(YYSTYPE *)malloc(newsize * sizeof *newvs); /* overflow check above */ (YYSTYPE *)malloc(newsize * sizeof *newvs); /* overflow check above */
if (newvs == NULL) if (newvs == NULL)
@@ -1078,19 +1030,11 @@ bail:
#define YYACCEPT goto yyaccept #define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab #define YYERROR goto yyerrlab
int int
#if defined(__cplusplus) || defined(__STDC__)
yyparse(void) yyparse(void)
#else
yyparse()
#endif
{ {
int yym, yyn, yystate; int yym, yyn, yystate;
#if YYDEBUG #if YYDEBUG
#if defined(__cplusplus) || defined(__STDC__)
const char *yys; const char *yys;
#else /* !(defined(__cplusplus) || defined(__STDC__)) */
char *yys;
#endif /* !(defined(__cplusplus) || defined(__STDC__)) */
if ((yys = getenv("YYDEBUG"))) if ((yys = getenv("YYDEBUG")))
{ {
@@ -1225,37 +1169,37 @@ yyreduce:
switch (yyn) switch (yyn)
{ {
case 3: case 3:
#line 129 "getdate.y" #line 131 "getdate.y"
{ {
yyHaveTime++; yyHaveTime++;
} }
break; break;
case 4: case 4:
#line 132 "getdate.y" #line 134 "getdate.y"
{ {
yyHaveZone++; yyHaveZone++;
} }
break; break;
case 5: case 5:
#line 135 "getdate.y" #line 137 "getdate.y"
{ {
yyHaveDate++; yyHaveDate++;
} }
break; break;
case 6: case 6:
#line 138 "getdate.y" #line 140 "getdate.y"
{ {
yyHaveDay++; yyHaveDay++;
} }
break; break;
case 7: case 7:
#line 141 "getdate.y" #line 143 "getdate.y"
{ {
yyHaveRel++; yyHaveRel++;
} }
break; break;
case 9: case 9:
#line 147 "getdate.y" #line 149 "getdate.y"
{ {
yyHour = yyvsp[-1].Number; yyHour = yyvsp[-1].Number;
yyMinutes = 0; yyMinutes = 0;
@@ -1264,7 +1208,7 @@ case 9:
} }
break; break;
case 10: case 10:
#line 153 "getdate.y" #line 155 "getdate.y"
{ {
yyHour = yyvsp[-3].Number; yyHour = yyvsp[-3].Number;
yyMinutes = yyvsp[-1].Number; yyMinutes = yyvsp[-1].Number;
@@ -1273,7 +1217,7 @@ case 10:
} }
break; break;
case 11: case 11:
#line 159 "getdate.y" #line 161 "getdate.y"
{ {
yyHour = yyvsp[-3].Number; yyHour = yyvsp[-3].Number;
yyMinutes = yyvsp[-1].Number; yyMinutes = yyvsp[-1].Number;
@@ -1283,7 +1227,7 @@ case 11:
} }
break; break;
case 12: case 12:
#line 166 "getdate.y" #line 168 "getdate.y"
{ {
yyHour = yyvsp[-5].Number; yyHour = yyvsp[-5].Number;
yyMinutes = yyvsp[-3].Number; yyMinutes = yyvsp[-3].Number;
@@ -1292,7 +1236,7 @@ case 12:
} }
break; break;
case 13: case 13:
#line 172 "getdate.y" #line 174 "getdate.y"
{ {
yyHour = yyvsp[-5].Number; yyHour = yyvsp[-5].Number;
yyMinutes = yyvsp[-3].Number; yyMinutes = yyvsp[-3].Number;
@@ -1303,56 +1247,56 @@ case 13:
} }
break; break;
case 14: case 14:
#line 182 "getdate.y" #line 184 "getdate.y"
{ {
yyTimezone = yyvsp[0].Number; yyTimezone = yyvsp[0].Number;
yyDSTmode = DSToff; yyDSTmode = DSToff;
} }
break; break;
case 15: case 15:
#line 186 "getdate.y" #line 188 "getdate.y"
{ {
yyTimezone = yyvsp[0].Number; yyTimezone = yyvsp[0].Number;
yyDSTmode = DSTon; yyDSTmode = DSTon;
} }
break; break;
case 16: case 16:
#line 191 "getdate.y" #line 193 "getdate.y"
{ {
yyTimezone = yyvsp[-1].Number; yyTimezone = yyvsp[-1].Number;
yyDSTmode = DSTon; yyDSTmode = DSTon;
} }
break; break;
case 17: case 17:
#line 197 "getdate.y" #line 199 "getdate.y"
{ {
yyDayOrdinal = 1; yyDayOrdinal = 1;
yyDayNumber = yyvsp[0].Number; yyDayNumber = yyvsp[0].Number;
} }
break; break;
case 18: case 18:
#line 201 "getdate.y" #line 203 "getdate.y"
{ {
yyDayOrdinal = 1; yyDayOrdinal = 1;
yyDayNumber = yyvsp[-1].Number; yyDayNumber = yyvsp[-1].Number;
} }
break; break;
case 19: case 19:
#line 205 "getdate.y" #line 207 "getdate.y"
{ {
yyDayOrdinal = yyvsp[-1].Number; yyDayOrdinal = yyvsp[-1].Number;
yyDayNumber = yyvsp[0].Number; yyDayNumber = yyvsp[0].Number;
} }
break; break;
case 20: case 20:
#line 211 "getdate.y" #line 213 "getdate.y"
{ {
yyMonth = yyvsp[-2].Number; yyMonth = yyvsp[-2].Number;
yyDay = yyvsp[0].Number; yyDay = yyvsp[0].Number;
} }
break; break;
case 21: case 21:
#line 215 "getdate.y" #line 217 "getdate.y"
{ {
if (yyvsp[-4].Number >= 100) { if (yyvsp[-4].Number >= 100) {
yyYear = yyvsp[-4].Number; yyYear = yyvsp[-4].Number;
@@ -1366,7 +1310,7 @@ case 21:
} }
break; break;
case 22: case 22:
#line 226 "getdate.y" #line 228 "getdate.y"
{ {
/* ISO 8601 format. yyyy-mm-dd. */ /* ISO 8601 format. yyyy-mm-dd. */
yyYear = yyvsp[-2].Number; yyYear = yyvsp[-2].Number;
@@ -1375,7 +1319,7 @@ case 22:
} }
break; break;
case 23: case 23:
#line 232 "getdate.y" #line 234 "getdate.y"
{ {
/* e.g. 17-JUN-1992. */ /* e.g. 17-JUN-1992. */
yyDay = yyvsp[-2].Number; yyDay = yyvsp[-2].Number;
@@ -1384,14 +1328,14 @@ case 23:
} }
break; break;
case 24: case 24:
#line 238 "getdate.y" #line 240 "getdate.y"
{ {
yyMonth = yyvsp[-1].Number; yyMonth = yyvsp[-1].Number;
yyDay = yyvsp[0].Number; yyDay = yyvsp[0].Number;
} }
break; break;
case 25: case 25:
#line 242 "getdate.y" #line 244 "getdate.y"
{ {
yyMonth = yyvsp[-3].Number; yyMonth = yyvsp[-3].Number;
yyDay = yyvsp[-2].Number; yyDay = yyvsp[-2].Number;
@@ -1399,14 +1343,14 @@ case 25:
} }
break; break;
case 26: case 26:
#line 247 "getdate.y" #line 249 "getdate.y"
{ {
yyMonth = yyvsp[0].Number; yyMonth = yyvsp[0].Number;
yyDay = yyvsp[-1].Number; yyDay = yyvsp[-1].Number;
} }
break; break;
case 27: case 27:
#line 251 "getdate.y" #line 253 "getdate.y"
{ {
yyMonth = yyvsp[-1].Number; yyMonth = yyvsp[-1].Number;
yyDay = yyvsp[-2].Number; yyDay = yyvsp[-2].Number;
@@ -1414,68 +1358,68 @@ case 27:
} }
break; break;
case 28: case 28:
#line 258 "getdate.y" #line 260 "getdate.y"
{ {
yyRelSeconds = -yyRelSeconds; yyRelSeconds = -yyRelSeconds;
yyRelMonth = -yyRelMonth; yyRelMonth = -yyRelMonth;
} }
break; break;
case 30: case 30:
#line 265 "getdate.y" #line 267 "getdate.y"
{ {
yyRelSeconds += yyvsp[-1].Number * yyvsp[0].Number * 60L; yyRelSeconds += yyvsp[-1].Number * yyvsp[0].Number * 60L;
} }
break; break;
case 31: case 31:
#line 268 "getdate.y" #line 270 "getdate.y"
{ {
yyRelSeconds += yyvsp[-1].Number * yyvsp[0].Number * 60L; yyRelSeconds += yyvsp[-1].Number * yyvsp[0].Number * 60L;
} }
break; break;
case 32: case 32:
#line 271 "getdate.y" #line 273 "getdate.y"
{ {
yyRelSeconds += yyvsp[0].Number * 60L; yyRelSeconds += yyvsp[0].Number * 60L;
} }
break; break;
case 33: case 33:
#line 274 "getdate.y" #line 276 "getdate.y"
{ {
yyRelSeconds += yyvsp[-1].Number; yyRelSeconds += yyvsp[-1].Number;
} }
break; break;
case 34: case 34:
#line 277 "getdate.y" #line 279 "getdate.y"
{ {
yyRelSeconds += yyvsp[-1].Number; yyRelSeconds += yyvsp[-1].Number;
} }
break; break;
case 35: case 35:
#line 280 "getdate.y" #line 282 "getdate.y"
{ {
yyRelSeconds++; yyRelSeconds++;
} }
break; break;
case 36: case 36:
#line 283 "getdate.y" #line 285 "getdate.y"
{ {
yyRelMonth += yyvsp[-1].Number * yyvsp[0].Number; yyRelMonth += yyvsp[-1].Number * yyvsp[0].Number;
} }
break; break;
case 37: case 37:
#line 286 "getdate.y" #line 288 "getdate.y"
{ {
yyRelMonth += yyvsp[-1].Number * yyvsp[0].Number; yyRelMonth += yyvsp[-1].Number * yyvsp[0].Number;
} }
break; break;
case 38: case 38:
#line 289 "getdate.y" #line 291 "getdate.y"
{ {
yyRelMonth += yyvsp[0].Number; yyRelMonth += yyvsp[0].Number;
} }
break; break;
case 39: case 39:
#line 294 "getdate.y" #line 296 "getdate.y"
{ {
if (yyHaveTime && yyHaveDate && !yyHaveRel) if (yyHaveTime && yyHaveDate && !yyHaveRel)
yyYear = yyvsp[0].Number; yyYear = yyvsp[0].Number;
@@ -1503,18 +1447,18 @@ case 39:
} }
break; break;
case 40: case 40:
#line 321 "getdate.y" #line 323 "getdate.y"
{ {
yyval.Meridian = MER24; yyval.Meridian = MER24;
} }
break; break;
case 41: case 41:
#line 324 "getdate.y" #line 326 "getdate.y"
{ {
yyval.Meridian = yyvsp[0].Meridian; yyval.Meridian = yyvsp[0].Meridian;
} }
break; break;
#line 1465 "getdate.c" #line 1453 "getdate.c"
} }
yyssp -= yym; yyssp -= yym;
yystate = *yyssp; yystate = *yyssp;

View File

@@ -34,7 +34,9 @@
#ifdef HAVE_STRINGS_H #ifdef HAVE_STRINGS_H
# include <strings.h> # include <strings.h>
#endif /* HAVE_STRINGS_H */ #endif /* HAVE_STRINGS_H */
#ifdef HAVE_INTTYPES_H #if defined(HAVE_STDINT_H)
# include <stdint.h>
#elif defined(HAVE_INTTYPES_H)
# include <inttypes.h> # include <inttypes.h>
#endif #endif
#ifdef TIME_WITH_SYS_TIME #ifdef TIME_WITH_SYS_TIME

View File

@@ -81,7 +81,9 @@
#ifdef HAVE_UNISTD_H #ifdef HAVE_UNISTD_H
# include <unistd.h> # include <unistd.h>
#endif /* HAVE_UNISTD_H */ #endif /* HAVE_UNISTD_H */
#ifdef HAVE_INTTYPES_H #if defined(HAVE_STDINT_H)
# include <stdint.h>
#elif defined(HAVE_INTTYPES_H)
# include <inttypes.h> # include <inttypes.h>
#endif #endif
#if defined(YYBISON) && defined(HAVE_ALLOCA_H) && !defined(__GNUC__) #if defined(YYBISON) && defined(HAVE_ALLOCA_H) && !defined(__GNUC__)
@@ -112,7 +114,7 @@ static void add_userspec(struct member *, struct privilege *);
static struct defaults *new_default(char *, char *, int); static struct defaults *new_default(char *, char *, int);
static struct member *new_member(char *, int); static struct member *new_member(char *, int);
static struct sudo_digest *new_digest(int, const char *); static struct sudo_digest *new_digest(int, const char *);
#line 79 "gram.y" #line 81 "gram.y"
#ifndef YYSTYPE_DEFINED #ifndef YYSTYPE_DEFINED
#define YYSTYPE_DEFINED #define YYSTYPE_DEFINED
typedef union { typedef union {
@@ -130,7 +132,7 @@ typedef union {
int tok; int tok;
} YYSTYPE; } YYSTYPE;
#endif /* YYSTYPE_DEFINED */ #endif /* YYSTYPE_DEFINED */
#line 133 "gram.c" #line 135 "gram.c"
#define COMMAND 257 #define COMMAND 257
#define ALIAS 258 #define ALIAS 258
#define DEFVAR 259 #define DEFVAR 259
@@ -171,11 +173,7 @@ typedef union {
#define SHA384_TOK 294 #define SHA384_TOK 294
#define SHA512_TOK 295 #define SHA512_TOK 295
#define YYERRCODE 256 #define YYERRCODE 256
#if defined(__cplusplus) || defined(__STDC__)
const short sudoerslhs[] = const short sudoerslhs[] =
#else
short sudoerslhs[] =
#endif
{ -1, { -1,
0, 0, 30, 30, 31, 31, 31, 31, 31, 31, 0, 0, 30, 30, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 4, 4, 3, 3, 31, 31, 31, 31, 31, 31, 4, 4, 3, 3,
@@ -190,11 +188,7 @@ short sudoerslhs[] =
13, 13, 13, 13, 17, 17, 15, 15, 16, 16, 13, 13, 13, 13, 17, 17, 15, 15, 16, 16,
16, 16,
}; };
#if defined(__cplusplus) || defined(__STDC__)
const short sudoerslen[] = const short sudoerslen[] =
#else
short sudoerslen[] =
#endif
{ 2, { 2,
0, 1, 1, 2, 1, 2, 2, 2, 2, 2, 0, 1, 1, 2, 1, 2, 2, 2, 2, 2,
2, 2, 3, 3, 3, 3, 1, 3, 1, 2, 2, 2, 3, 3, 3, 3, 1, 3, 1, 2,
@@ -209,11 +203,7 @@ short sudoerslen[] =
1, 1, 1, 1, 1, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 1, 1,
1, 1,
}; };
#if defined(__cplusplus) || defined(__STDC__)
const short sudoersdefred[] = const short sudoersdefred[] =
#else
short sudoersdefred[] =
#endif
{ 0, { 0,
0, 100, 102, 103, 104, 0, 0, 0, 0, 0, 0, 100, 102, 103, 104, 0, 0, 0, 0, 0,
101, 5, 0, 0, 0, 0, 0, 0, 96, 98, 101, 5, 0, 0, 0, 0, 0, 0, 96, 98,
@@ -234,22 +224,14 @@ short sudoersdefred[] =
106, 52, 53, 67, 68, 69, 70, 71, 72, 73, 106, 52, 53, 67, 68, 69, 70, 71, 72, 73,
74, 75, 76, 36, 74, 75, 76, 36,
}; };
#if defined(__cplusplus) || defined(__STDC__)
const short sudoersdgoto[] = const short sudoersdgoto[] =
#else
short sudoersdgoto[] =
#endif
{ 18, { 18,
119, 120, 27, 28, 48, 49, 50, 51, 35, 67, 119, 120, 27, 28, 48, 49, 50, 51, 35, 67,
37, 19, 20, 21, 136, 137, 138, 121, 125, 68, 37, 19, 20, 21, 136, 137, 138, 121, 125, 68,
69, 158, 129, 130, 131, 146, 147, 148, 52, 22, 69, 158, 129, 130, 131, 146, 147, 148, 52, 22,
23, 60, 54, 57, 63, 55, 58, 64, 61, 23, 60, 54, 57, 63, 55, 58, 64, 61,
}; };
#if defined(__cplusplus) || defined(__STDC__)
const short sudoerssindex[] = const short sudoerssindex[] =
#else
short sudoerssindex[] =
#endif
{ -33, { -33,
-277, 0, 0, 0, 0, -13, 75, 105, 105, -15, -277, 0, 0, 0, 0, -13, 75, 105, 105, -15,
0, 0, -246, -241, -217, -210, -226, 0, 0, 0, 0, 0, -246, -241, -217, -210, -226, 0, 0, 0,
@@ -269,11 +251,7 @@ short sudoerssindex[] =
0, 135, 54, 0, 0, -159, -158, 585, 0, 0, 0, 135, 54, 0, 0, -159, -158, 585, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0,}; 0, 0, 0, 0,};
#if defined(__cplusplus) || defined(__STDC__)
const short sudoersrindex[] = const short sudoersrindex[] =
#else
short sudoersrindex[] =
#endif
{ 106, { 106,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -293,11 +271,7 @@ short sudoersrindex[] =
0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0,}; 0, 0, 0, 0,};
#if defined(__cplusplus) || defined(__STDC__)
const short sudoersgindex[] = const short sudoersgindex[] =
#else
short sudoersgindex[] =
#endif
{ 0, { 0,
-10, 0, 47, 17, 80, 65, -84, 27, 92, -4, -10, 0, 47, 17, 80, 65, -84, 27, 92, -4,
48, 62, 112, 2, -25, 10, -9, 0, 0, 33, 48, 62, 112, 2, -25, 10, -9, 0, 0, 33,
@@ -305,11 +279,7 @@ short sudoersgindex[] =
111, 0, 0, 0, 0, 50, 51, 52, 53, 111, 0, 0, 0, 0, 50, 51, 52, 53,
}; };
#define YYTABLESIZE 970 #define YYTABLESIZE 970
#if defined(__cplusplus) || defined(__STDC__)
const short sudoerstable[] = const short sudoerstable[] =
#else
short sudoerstable[] =
#endif
{ 17, { 17,
19, 109, 36, 24, 26, 40, 41, 127, 128, 38, 19, 109, 36, 24, 26, 40, 41, 127, 128, 38,
39, 53, 43, 26, 74, 77, 56, 43, 26, 26, 39, 53, 43, 26, 74, 77, 56, 43, 26, 26,
@@ -409,11 +379,7 @@ short sudoerstable[] =
56, 56, 56, 56, 56, 0, 0, 0, 0, 0, 56, 56, 56, 56, 56, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 56, 56, 56, 56, 0, 0, 0, 0, 0, 0, 56, 56, 56, 56,
}; };
#if defined(__cplusplus) || defined(__STDC__)
const short sudoerscheck[] = const short sudoerscheck[] =
#else
short sudoerscheck[] =
#endif
{ 33, { 33,
0, 86, 7, 281, 33, 257, 258, 287, 288, 8, 0, 86, 7, 281, 33, 257, 258, 287, 288, 8,
9, 258, 33, 33, 259, 44, 258, 33, 33, 33, 9, 258, 33, 33, 259, 44, 258, 33, 33, 33,
@@ -519,11 +485,7 @@ short sudoerscheck[] =
#endif #endif
#define YYMAXTOKEN 295 #define YYMAXTOKEN 295
#if YYDEBUG #if YYDEBUG
#if defined(__cplusplus) || defined(__STDC__)
const char * const sudoersname[] = const char * const sudoersname[] =
#else
char *sudoersname[] =
#endif
{ {
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
"'!'",0,0,0,0,0,0,"'('","')'",0,"'+'","','","'-'",0,0,0,0,0,0,0,0,0,0,0,0,"':'", "'!'",0,0,0,0,0,0,"'('","')'",0,"'+'","','","'-'",0,0,0,0,0,0,0,0,0,0,0,0,"':'",
@@ -539,11 +501,7 @@ char *sudoersname[] =
"CMNDALIAS","USERALIAS","RUNASALIAS","ERROR","TYPE","ROLE","PRIVS","LIMITPRIVS", "CMNDALIAS","USERALIAS","RUNASALIAS","ERROR","TYPE","ROLE","PRIVS","LIMITPRIVS",
"MYSELF","SHA224_TOK","SHA256_TOK","SHA384_TOK","SHA512_TOK", "MYSELF","SHA224_TOK","SHA256_TOK","SHA384_TOK","SHA512_TOK",
}; };
#if defined(__cplusplus) || defined(__STDC__)
const char * const sudoersrule[] = const char * const sudoersrule[] =
#else
char *sudoersrule[] =
#endif
{"$accept : file", {"$accept : file",
"file :", "file :",
"file : line", "file : line",
@@ -683,7 +641,7 @@ short *yyss;
short *yysslim; short *yysslim;
YYSTYPE *yyvs; YYSTYPE *yyvs;
unsigned int yystacksize; unsigned int yystacksize;
#line 675 "gram.y" #line 677 "gram.y"
void void
sudoerserror(const char *s) sudoerserror(const char *s)
{ {
@@ -942,13 +900,9 @@ init_parser(const char *path, bool quiet)
debug_return; debug_return;
} }
#line 893 "gram.c" #line 895 "gram.c"
/* allocate initial stack or double stack size, up to YYMAXDEPTH */ /* allocate initial stack or double stack size, up to YYMAXDEPTH */
#if defined(__cplusplus) || defined(__STDC__)
static int yygrowstack(void) static int yygrowstack(void)
#else
static int yygrowstack()
#endif
{ {
unsigned int newsize; unsigned int newsize;
long sslen; long sslen;
@@ -961,24 +915,22 @@ static int yygrowstack()
return -1; return -1;
else if ((newsize *= 2) > YYMAXDEPTH) else if ((newsize *= 2) > YYMAXDEPTH)
newsize = YYMAXDEPTH; newsize = YYMAXDEPTH;
sslen = yyssp - yyss;
#ifdef SIZE_MAX #ifdef SIZE_MAX
#define YY_SIZE_MAX SIZE_MAX #define YY_SIZE_MAX SIZE_MAX
#else #else
#ifdef __STDC__
#define YY_SIZE_MAX 0xffffffffU #define YY_SIZE_MAX 0xffffffffU
#else
#define YY_SIZE_MAX (unsigned int)0xffffffff
#endif #endif
#endif if (newsize && YY_SIZE_MAX / newsize < sizeof *newss)
if (YY_SIZE_MAX / newsize < sizeof *newss)
goto bail; goto bail;
sslen = yyssp - yyss;
newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) : newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) :
(short *)malloc(newsize * sizeof *newss); /* overflow check above */ (short *)malloc(newsize * sizeof *newss); /* overflow check above */
if (newss == NULL) if (newss == NULL)
goto bail; goto bail;
yyss = newss; yyss = newss;
yyssp = newss + sslen; yyssp = newss + sslen;
if (newsize && YY_SIZE_MAX / newsize < sizeof *newvs)
goto bail;
newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) : newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) :
(YYSTYPE *)malloc(newsize * sizeof *newvs); /* overflow check above */ (YYSTYPE *)malloc(newsize * sizeof *newvs); /* overflow check above */
if (newvs == NULL) if (newvs == NULL)
@@ -1004,19 +956,11 @@ bail:
#define YYACCEPT goto yyaccept #define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab #define YYERROR goto yyerrlab
int int
#if defined(__cplusplus) || defined(__STDC__)
yyparse(void) yyparse(void)
#else
yyparse()
#endif
{ {
int yym, yyn, yystate; int yym, yyn, yystate;
#if YYDEBUG #if YYDEBUG
#if defined(__cplusplus) || defined(__STDC__)
const char *yys; const char *yys;
#else /* !(defined(__cplusplus) || defined(__STDC__)) */
char *yys;
#endif /* !(defined(__cplusplus) || defined(__STDC__)) */
if ((yys = getenv("YYDEBUG"))) if ((yys = getenv("YYDEBUG")))
{ {
@@ -1151,127 +1095,127 @@ yyreduce:
switch (yyn) switch (yyn)
{ {
case 1: case 1:
#line 169 "gram.y" #line 171 "gram.y"
{ ; } { ; }
break; break;
case 5: case 5:
#line 177 "gram.y" #line 179 "gram.y"
{ {
; ;
} }
break; break;
case 6: case 6:
#line 180 "gram.y" #line 182 "gram.y"
{ {
yyerrok; yyerrok;
} }
break; break;
case 7: case 7:
#line 183 "gram.y" #line 185 "gram.y"
{ {
add_userspec(yyvsp[-1].member, yyvsp[0].privilege); add_userspec(yyvsp[-1].member, yyvsp[0].privilege);
} }
break; break;
case 8: case 8:
#line 186 "gram.y" #line 188 "gram.y"
{ {
; ;
} }
break; break;
case 9: case 9:
#line 189 "gram.y" #line 191 "gram.y"
{ {
; ;
} }
break; break;
case 10: case 10:
#line 192 "gram.y" #line 194 "gram.y"
{ {
; ;
} }
break; break;
case 11: case 11:
#line 195 "gram.y" #line 197 "gram.y"
{ {
; ;
} }
break; break;
case 12: case 12:
#line 198 "gram.y" #line 200 "gram.y"
{ {
add_defaults(DEFAULTS, NULL, yyvsp[0].defaults); add_defaults(DEFAULTS, NULL, yyvsp[0].defaults);
} }
break; break;
case 13: case 13:
#line 201 "gram.y" #line 203 "gram.y"
{ {
add_defaults(DEFAULTS_USER, yyvsp[-1].member, yyvsp[0].defaults); add_defaults(DEFAULTS_USER, yyvsp[-1].member, yyvsp[0].defaults);
} }
break; break;
case 14: case 14:
#line 204 "gram.y" #line 206 "gram.y"
{ {
add_defaults(DEFAULTS_RUNAS, yyvsp[-1].member, yyvsp[0].defaults); add_defaults(DEFAULTS_RUNAS, yyvsp[-1].member, yyvsp[0].defaults);
} }
break; break;
case 15: case 15:
#line 207 "gram.y" #line 209 "gram.y"
{ {
add_defaults(DEFAULTS_HOST, yyvsp[-1].member, yyvsp[0].defaults); add_defaults(DEFAULTS_HOST, yyvsp[-1].member, yyvsp[0].defaults);
} }
break; break;
case 16: case 16:
#line 210 "gram.y" #line 212 "gram.y"
{ {
add_defaults(DEFAULTS_CMND, yyvsp[-1].member, yyvsp[0].defaults); add_defaults(DEFAULTS_CMND, yyvsp[-1].member, yyvsp[0].defaults);
} }
break; break;
case 18: case 18:
#line 216 "gram.y" #line 218 "gram.y"
{ {
HLTQ_CONCAT(yyvsp[-2].defaults, yyvsp[0].defaults, entries); HLTQ_CONCAT(yyvsp[-2].defaults, yyvsp[0].defaults, entries);
yyval.defaults = yyvsp[-2].defaults; yyval.defaults = yyvsp[-2].defaults;
} }
break; break;
case 19: case 19:
#line 222 "gram.y" #line 224 "gram.y"
{ {
yyval.defaults = new_default(yyvsp[0].string, NULL, true); yyval.defaults = new_default(yyvsp[0].string, NULL, true);
} }
break; break;
case 20: case 20:
#line 225 "gram.y" #line 227 "gram.y"
{ {
yyval.defaults = new_default(yyvsp[0].string, NULL, false); yyval.defaults = new_default(yyvsp[0].string, NULL, false);
} }
break; break;
case 21: case 21:
#line 228 "gram.y" #line 230 "gram.y"
{ {
yyval.defaults = new_default(yyvsp[-2].string, yyvsp[0].string, true); yyval.defaults = new_default(yyvsp[-2].string, yyvsp[0].string, true);
} }
break; break;
case 22: case 22:
#line 231 "gram.y" #line 233 "gram.y"
{ {
yyval.defaults = new_default(yyvsp[-2].string, yyvsp[0].string, '+'); yyval.defaults = new_default(yyvsp[-2].string, yyvsp[0].string, '+');
} }
break; break;
case 23: case 23:
#line 234 "gram.y" #line 236 "gram.y"
{ {
yyval.defaults = new_default(yyvsp[-2].string, yyvsp[0].string, '-'); yyval.defaults = new_default(yyvsp[-2].string, yyvsp[0].string, '-');
} }
break; break;
case 25: case 25:
#line 240 "gram.y" #line 242 "gram.y"
{ {
HLTQ_CONCAT(yyvsp[-2].privilege, yyvsp[0].privilege, entries); HLTQ_CONCAT(yyvsp[-2].privilege, yyvsp[0].privilege, entries);
yyval.privilege = yyvsp[-2].privilege; yyval.privilege = yyvsp[-2].privilege;
} }
break; break;
case 26: case 26:
#line 246 "gram.y" #line 248 "gram.y"
{ {
struct privilege *p = sudo_ecalloc(1, sizeof(*p)); struct privilege *p = sudo_ecalloc(1, sizeof(*p));
HLTQ_TO_TAILQ(&p->hostlist, yyvsp[-2].member, entries); HLTQ_TO_TAILQ(&p->hostlist, yyvsp[-2].member, entries);
@@ -1281,51 +1225,51 @@ case 26:
} }
break; break;
case 27: case 27:
#line 255 "gram.y" #line 257 "gram.y"
{ {
yyval.member = yyvsp[0].member; yyval.member = yyvsp[0].member;
yyval.member->negated = false; yyval.member->negated = false;
} }
break; break;
case 28: case 28:
#line 259 "gram.y" #line 261 "gram.y"
{ {
yyval.member = yyvsp[0].member; yyval.member = yyvsp[0].member;
yyval.member->negated = true; yyval.member->negated = true;
} }
break; break;
case 29: case 29:
#line 265 "gram.y" #line 267 "gram.y"
{ {
yyval.member = new_member(yyvsp[0].string, ALIAS); yyval.member = new_member(yyvsp[0].string, ALIAS);
} }
break; break;
case 30: case 30:
#line 268 "gram.y" #line 270 "gram.y"
{ {
yyval.member = new_member(NULL, ALL); yyval.member = new_member(NULL, ALL);
} }
break; break;
case 31: case 31:
#line 271 "gram.y" #line 273 "gram.y"
{ {
yyval.member = new_member(yyvsp[0].string, NETGROUP); yyval.member = new_member(yyvsp[0].string, NETGROUP);
} }
break; break;
case 32: case 32:
#line 274 "gram.y" #line 276 "gram.y"
{ {
yyval.member = new_member(yyvsp[0].string, NTWKADDR); yyval.member = new_member(yyvsp[0].string, NTWKADDR);
} }
break; break;
case 33: case 33:
#line 277 "gram.y" #line 279 "gram.y"
{ {
yyval.member = new_member(yyvsp[0].string, WORD); yyval.member = new_member(yyvsp[0].string, WORD);
} }
break; break;
case 35: case 35:
#line 283 "gram.y" #line 285 "gram.y"
{ {
struct cmndspec *prev; struct cmndspec *prev;
prev = HLTQ_LAST(yyvsp[-2].cmndspec, cmndspec, entries); prev = HLTQ_LAST(yyvsp[-2].cmndspec, cmndspec, entries);
@@ -1367,7 +1311,7 @@ case 35:
} }
break; break;
case 36: case 36:
#line 324 "gram.y" #line 326 "gram.y"
{ {
struct cmndspec *cs = sudo_ecalloc(1, sizeof(*cs)); struct cmndspec *cs = sudo_ecalloc(1, sizeof(*cs));
if (yyvsp[-4].runas != NULL) { if (yyvsp[-4].runas != NULL) {
@@ -1404,37 +1348,37 @@ case 36:
} }
break; break;
case 37: case 37:
#line 360 "gram.y" #line 362 "gram.y"
{ {
yyval.digest = new_digest(SUDO_DIGEST_SHA224, yyvsp[0].string); yyval.digest = new_digest(SUDO_DIGEST_SHA224, yyvsp[0].string);
} }
break; break;
case 38: case 38:
#line 363 "gram.y" #line 365 "gram.y"
{ {
yyval.digest = new_digest(SUDO_DIGEST_SHA256, yyvsp[0].string); yyval.digest = new_digest(SUDO_DIGEST_SHA256, yyvsp[0].string);
} }
break; break;
case 39: case 39:
#line 366 "gram.y" #line 368 "gram.y"
{ {
yyval.digest = new_digest(SUDO_DIGEST_SHA384, yyvsp[0].string); yyval.digest = new_digest(SUDO_DIGEST_SHA384, yyvsp[0].string);
} }
break; break;
case 40: case 40:
#line 369 "gram.y" #line 371 "gram.y"
{ {
yyval.digest = new_digest(SUDO_DIGEST_SHA512, yyvsp[0].string); yyval.digest = new_digest(SUDO_DIGEST_SHA512, yyvsp[0].string);
} }
break; break;
case 41: case 41:
#line 374 "gram.y" #line 376 "gram.y"
{ {
yyval.member = yyvsp[0].member; yyval.member = yyvsp[0].member;
} }
break; break;
case 42: case 42:
#line 377 "gram.y" #line 379 "gram.y"
{ {
if (yyvsp[0].member->type != COMMAND) { if (yyvsp[0].member->type != COMMAND) {
sudoerserror(N_("a digest requires a path name")); sudoerserror(N_("a digest requires a path name"));
@@ -1446,127 +1390,127 @@ case 42:
} }
break; break;
case 43: case 43:
#line 388 "gram.y" #line 390 "gram.y"
{ {
yyval.member = yyvsp[0].member; yyval.member = yyvsp[0].member;
yyval.member->negated = false; yyval.member->negated = false;
} }
break; break;
case 44: case 44:
#line 392 "gram.y" #line 394 "gram.y"
{ {
yyval.member = yyvsp[0].member; yyval.member = yyvsp[0].member;
yyval.member->negated = true; yyval.member->negated = true;
} }
break; break;
case 45: case 45:
#line 398 "gram.y" #line 400 "gram.y"
{ {
yyval.string = yyvsp[0].string; yyval.string = yyvsp[0].string;
} }
break; break;
case 46: case 46:
#line 403 "gram.y" #line 405 "gram.y"
{ {
yyval.string = yyvsp[0].string; yyval.string = yyvsp[0].string;
} }
break; break;
case 47: case 47:
#line 408 "gram.y" #line 410 "gram.y"
{ {
yyval.seinfo.role = NULL; yyval.seinfo.role = NULL;
yyval.seinfo.type = NULL; yyval.seinfo.type = NULL;
} }
break; break;
case 48: case 48:
#line 412 "gram.y" #line 414 "gram.y"
{ {
yyval.seinfo.role = yyvsp[0].string; yyval.seinfo.role = yyvsp[0].string;
yyval.seinfo.type = NULL; yyval.seinfo.type = NULL;
} }
break; break;
case 49: case 49:
#line 416 "gram.y" #line 418 "gram.y"
{ {
yyval.seinfo.type = yyvsp[0].string; yyval.seinfo.type = yyvsp[0].string;
yyval.seinfo.role = NULL; yyval.seinfo.role = NULL;
} }
break; break;
case 50: case 50:
#line 420 "gram.y" #line 422 "gram.y"
{ {
yyval.seinfo.role = yyvsp[-1].string; yyval.seinfo.role = yyvsp[-1].string;
yyval.seinfo.type = yyvsp[0].string; yyval.seinfo.type = yyvsp[0].string;
} }
break; break;
case 51: case 51:
#line 424 "gram.y" #line 426 "gram.y"
{ {
yyval.seinfo.type = yyvsp[-1].string; yyval.seinfo.type = yyvsp[-1].string;
yyval.seinfo.role = yyvsp[0].string; yyval.seinfo.role = yyvsp[0].string;
} }
break; break;
case 52: case 52:
#line 430 "gram.y" #line 432 "gram.y"
{ {
yyval.string = yyvsp[0].string; yyval.string = yyvsp[0].string;
} }
break; break;
case 53: case 53:
#line 434 "gram.y" #line 436 "gram.y"
{ {
yyval.string = yyvsp[0].string; yyval.string = yyvsp[0].string;
} }
break; break;
case 54: case 54:
#line 439 "gram.y" #line 441 "gram.y"
{ {
yyval.privinfo.privs = NULL; yyval.privinfo.privs = NULL;
yyval.privinfo.limitprivs = NULL; yyval.privinfo.limitprivs = NULL;
} }
break; break;
case 55: case 55:
#line 443 "gram.y" #line 445 "gram.y"
{ {
yyval.privinfo.privs = yyvsp[0].string; yyval.privinfo.privs = yyvsp[0].string;
yyval.privinfo.limitprivs = NULL; yyval.privinfo.limitprivs = NULL;
} }
break; break;
case 56: case 56:
#line 447 "gram.y" #line 449 "gram.y"
{ {
yyval.privinfo.privs = NULL; yyval.privinfo.privs = NULL;
yyval.privinfo.limitprivs = yyvsp[0].string; yyval.privinfo.limitprivs = yyvsp[0].string;
} }
break; break;
case 57: case 57:
#line 451 "gram.y" #line 453 "gram.y"
{ {
yyval.privinfo.privs = yyvsp[-1].string; yyval.privinfo.privs = yyvsp[-1].string;
yyval.privinfo.limitprivs = yyvsp[0].string; yyval.privinfo.limitprivs = yyvsp[0].string;
} }
break; break;
case 58: case 58:
#line 455 "gram.y" #line 457 "gram.y"
{ {
yyval.privinfo.limitprivs = yyvsp[-1].string; yyval.privinfo.limitprivs = yyvsp[-1].string;
yyval.privinfo.privs = yyvsp[0].string; yyval.privinfo.privs = yyvsp[0].string;
} }
break; break;
case 59: case 59:
#line 461 "gram.y" #line 463 "gram.y"
{ {
yyval.runas = NULL; yyval.runas = NULL;
} }
break; break;
case 60: case 60:
#line 464 "gram.y" #line 466 "gram.y"
{ {
yyval.runas = yyvsp[-1].runas; yyval.runas = yyvsp[-1].runas;
} }
break; break;
case 61: case 61:
#line 469 "gram.y" #line 471 "gram.y"
{ {
yyval.runas = sudo_ecalloc(1, sizeof(struct runascontainer)); yyval.runas = sudo_ecalloc(1, sizeof(struct runascontainer));
yyval.runas->runasusers = new_member(NULL, MYSELF); yyval.runas->runasusers = new_member(NULL, MYSELF);
@@ -1574,7 +1518,7 @@ case 61:
} }
break; break;
case 62: case 62:
#line 474 "gram.y" #line 476 "gram.y"
{ {
yyval.runas = sudo_ecalloc(1, sizeof(struct runascontainer)); yyval.runas = sudo_ecalloc(1, sizeof(struct runascontainer));
yyval.runas->runasusers = yyvsp[0].member; yyval.runas->runasusers = yyvsp[0].member;
@@ -1582,7 +1526,7 @@ case 62:
} }
break; break;
case 63: case 63:
#line 479 "gram.y" #line 481 "gram.y"
{ {
yyval.runas = sudo_ecalloc(1, sizeof(struct runascontainer)); yyval.runas = sudo_ecalloc(1, sizeof(struct runascontainer));
yyval.runas->runasusers = yyvsp[-2].member; yyval.runas->runasusers = yyvsp[-2].member;
@@ -1590,7 +1534,7 @@ case 63:
} }
break; break;
case 64: case 64:
#line 484 "gram.y" #line 486 "gram.y"
{ {
yyval.runas = sudo_ecalloc(1, sizeof(struct runascontainer)); yyval.runas = sudo_ecalloc(1, sizeof(struct runascontainer));
/* $$->runasusers = NULL; */ /* $$->runasusers = NULL; */
@@ -1598,7 +1542,7 @@ case 64:
} }
break; break;
case 65: case 65:
#line 489 "gram.y" #line 491 "gram.y"
{ {
yyval.runas = sudo_ecalloc(1, sizeof(struct runascontainer)); yyval.runas = sudo_ecalloc(1, sizeof(struct runascontainer));
yyval.runas->runasusers = new_member(NULL, MYSELF); yyval.runas->runasusers = new_member(NULL, MYSELF);
@@ -1606,86 +1550,86 @@ case 65:
} }
break; break;
case 66: case 66:
#line 496 "gram.y" #line 498 "gram.y"
{ {
yyval.tag.nopasswd = yyval.tag.noexec = yyval.tag.setenv = yyval.tag.nopasswd = yyval.tag.noexec = yyval.tag.setenv =
yyval.tag.log_input = yyval.tag.log_output = UNSPEC; yyval.tag.log_input = yyval.tag.log_output = UNSPEC;
} }
break; break;
case 67: case 67:
#line 500 "gram.y" #line 502 "gram.y"
{ {
yyval.tag.nopasswd = true; yyval.tag.nopasswd = true;
} }
break; break;
case 68: case 68:
#line 503 "gram.y" #line 505 "gram.y"
{ {
yyval.tag.nopasswd = false; yyval.tag.nopasswd = false;
} }
break; break;
case 69: case 69:
#line 506 "gram.y" #line 508 "gram.y"
{ {
yyval.tag.noexec = true; yyval.tag.noexec = true;
} }
break; break;
case 70: case 70:
#line 509 "gram.y" #line 511 "gram.y"
{ {
yyval.tag.noexec = false; yyval.tag.noexec = false;
} }
break; break;
case 71: case 71:
#line 512 "gram.y" #line 514 "gram.y"
{ {
yyval.tag.setenv = true; yyval.tag.setenv = true;
} }
break; break;
case 72: case 72:
#line 515 "gram.y" #line 517 "gram.y"
{ {
yyval.tag.setenv = false; yyval.tag.setenv = false;
} }
break; break;
case 73: case 73:
#line 518 "gram.y" #line 520 "gram.y"
{ {
yyval.tag.log_input = true; yyval.tag.log_input = true;
} }
break; break;
case 74: case 74:
#line 521 "gram.y" #line 523 "gram.y"
{ {
yyval.tag.log_input = false; yyval.tag.log_input = false;
} }
break; break;
case 75: case 75:
#line 524 "gram.y" #line 526 "gram.y"
{ {
yyval.tag.log_output = true; yyval.tag.log_output = true;
} }
break; break;
case 76: case 76:
#line 527 "gram.y" #line 529 "gram.y"
{ {
yyval.tag.log_output = false; yyval.tag.log_output = false;
} }
break; break;
case 77: case 77:
#line 532 "gram.y" #line 534 "gram.y"
{ {
yyval.member = new_member(NULL, ALL); yyval.member = new_member(NULL, ALL);
} }
break; break;
case 78: case 78:
#line 535 "gram.y" #line 537 "gram.y"
{ {
yyval.member = new_member(yyvsp[0].string, ALIAS); yyval.member = new_member(yyvsp[0].string, ALIAS);
} }
break; break;
case 79: case 79:
#line 538 "gram.y" #line 540 "gram.y"
{ {
struct sudo_command *c = sudo_ecalloc(1, sizeof(*c)); struct sudo_command *c = sudo_ecalloc(1, sizeof(*c));
c->cmnd = yyvsp[0].command.cmnd; c->cmnd = yyvsp[0].command.cmnd;
@@ -1694,7 +1638,7 @@ case 79:
} }
break; break;
case 82: case 82:
#line 550 "gram.y" #line 552 "gram.y"
{ {
char *s; char *s;
if ((s = alias_add(yyvsp[-2].string, HOSTALIAS, yyvsp[0].member)) != NULL) { if ((s = alias_add(yyvsp[-2].string, HOSTALIAS, yyvsp[0].member)) != NULL) {
@@ -1704,14 +1648,14 @@ case 82:
} }
break; break;
case 84: case 84:
#line 560 "gram.y" #line 562 "gram.y"
{ {
HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries); HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries);
yyval.member = yyvsp[-2].member; yyval.member = yyvsp[-2].member;
} }
break; break;
case 87: case 87:
#line 570 "gram.y" #line 572 "gram.y"
{ {
char *s; char *s;
if ((s = alias_add(yyvsp[-2].string, CMNDALIAS, yyvsp[0].member)) != NULL) { if ((s = alias_add(yyvsp[-2].string, CMNDALIAS, yyvsp[0].member)) != NULL) {
@@ -1721,14 +1665,14 @@ case 87:
} }
break; break;
case 89: case 89:
#line 580 "gram.y" #line 582 "gram.y"
{ {
HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries); HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries);
yyval.member = yyvsp[-2].member; yyval.member = yyvsp[-2].member;
} }
break; break;
case 92: case 92:
#line 590 "gram.y" #line 592 "gram.y"
{ {
char *s; char *s;
if ((s = alias_add(yyvsp[-2].string, RUNASALIAS, yyvsp[0].member)) != NULL) { if ((s = alias_add(yyvsp[-2].string, RUNASALIAS, yyvsp[0].member)) != NULL) {
@@ -1738,7 +1682,7 @@ case 92:
} }
break; break;
case 95: case 95:
#line 603 "gram.y" #line 605 "gram.y"
{ {
char *s; char *s;
if ((s = alias_add(yyvsp[-2].string, USERALIAS, yyvsp[0].member)) != NULL) { if ((s = alias_add(yyvsp[-2].string, USERALIAS, yyvsp[0].member)) != NULL) {
@@ -1748,96 +1692,96 @@ case 95:
} }
break; break;
case 97: case 97:
#line 613 "gram.y" #line 615 "gram.y"
{ {
HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries); HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries);
yyval.member = yyvsp[-2].member; yyval.member = yyvsp[-2].member;
} }
break; break;
case 98: case 98:
#line 619 "gram.y" #line 621 "gram.y"
{ {
yyval.member = yyvsp[0].member; yyval.member = yyvsp[0].member;
yyval.member->negated = false; yyval.member->negated = false;
} }
break; break;
case 99: case 99:
#line 623 "gram.y" #line 625 "gram.y"
{ {
yyval.member = yyvsp[0].member; yyval.member = yyvsp[0].member;
yyval.member->negated = true; yyval.member->negated = true;
} }
break; break;
case 100: case 100:
#line 629 "gram.y" #line 631 "gram.y"
{ {
yyval.member = new_member(yyvsp[0].string, ALIAS); yyval.member = new_member(yyvsp[0].string, ALIAS);
} }
break; break;
case 101: case 101:
#line 632 "gram.y" #line 634 "gram.y"
{ {
yyval.member = new_member(NULL, ALL); yyval.member = new_member(NULL, ALL);
} }
break; break;
case 102: case 102:
#line 635 "gram.y" #line 637 "gram.y"
{ {
yyval.member = new_member(yyvsp[0].string, NETGROUP); yyval.member = new_member(yyvsp[0].string, NETGROUP);
} }
break; break;
case 103: case 103:
#line 638 "gram.y" #line 640 "gram.y"
{ {
yyval.member = new_member(yyvsp[0].string, USERGROUP); yyval.member = new_member(yyvsp[0].string, USERGROUP);
} }
break; break;
case 104: case 104:
#line 641 "gram.y" #line 643 "gram.y"
{ {
yyval.member = new_member(yyvsp[0].string, WORD); yyval.member = new_member(yyvsp[0].string, WORD);
} }
break; break;
case 106: case 106:
#line 647 "gram.y" #line 649 "gram.y"
{ {
HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries); HLTQ_CONCAT(yyvsp[-2].member, yyvsp[0].member, entries);
yyval.member = yyvsp[-2].member; yyval.member = yyvsp[-2].member;
} }
break; break;
case 107: case 107:
#line 653 "gram.y" #line 655 "gram.y"
{ {
yyval.member = yyvsp[0].member; yyval.member = yyvsp[0].member;
yyval.member->negated = false; yyval.member->negated = false;
} }
break; break;
case 108: case 108:
#line 657 "gram.y" #line 659 "gram.y"
{ {
yyval.member = yyvsp[0].member; yyval.member = yyvsp[0].member;
yyval.member->negated = true; yyval.member->negated = true;
} }
break; break;
case 109: case 109:
#line 663 "gram.y" #line 665 "gram.y"
{ {
yyval.member = new_member(yyvsp[0].string, ALIAS); yyval.member = new_member(yyvsp[0].string, ALIAS);
} }
break; break;
case 110: case 110:
#line 666 "gram.y" #line 668 "gram.y"
{ {
yyval.member = new_member(NULL, ALL); yyval.member = new_member(NULL, ALL);
} }
break; break;
case 111: case 111:
#line 669 "gram.y" #line 671 "gram.y"
{ {
yyval.member = new_member(yyvsp[0].string, WORD); yyval.member = new_member(yyvsp[0].string, WORD);
} }
break; break;
#line 1788 "gram.c" #line 1776 "gram.c"
} }
yyssp -= yym; yyssp -= yym;
yystate = *yyssp; yystate = *yyssp;

View File

@@ -43,7 +43,9 @@
#ifdef HAVE_UNISTD_H #ifdef HAVE_UNISTD_H
# include <unistd.h> # include <unistd.h>
#endif /* HAVE_UNISTD_H */ #endif /* HAVE_UNISTD_H */
#ifdef HAVE_INTTYPES_H #if defined(HAVE_STDINT_H)
# include <stdint.h>
#elif defined(HAVE_INTTYPES_H)
# include <inttypes.h> # include <inttypes.h>
#endif #endif
#if defined(YYBISON) && defined(HAVE_ALLOCA_H) && !defined(__GNUC__) #if defined(YYBISON) && defined(HAVE_ALLOCA_H) && !defined(__GNUC__)