Imported Upstream version 1.8.7
[debian/sudo] / plugins / sudoers / getdate.y
index 13483ff31ff1459ad1a876991b27f3c22ea6a3e4..bd411a0adb1a1fd0812652d753ff492961c84e61 100644 (file)
@@ -100,7 +100,7 @@ static time_t       yyRelSeconds;
 
 static int     yyerror(char *s);
 static int     yylex(void);
-static int     yyparse(void);
+       int     yyparse(void);
 
 %}
 
@@ -586,9 +586,8 @@ Convert(Month, Day, Year, Hours, Minutes, Seconds, Meridian, DSTmode)
     }
     DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0)
                    ? 29 : 28;
-    /* Checking for 2038 bogusly assumes that time_t is 32 bits.  But
-       I'm too lazy to try to check for time_t overflow in another way.  */
-    if (Year < EPOCH || Year > 2038
+    /* 32-bit time_t cannot represent years past 2038 */
+    if (Year < EPOCH || (sizeof(time_t) == sizeof(int) && Year > 2038)
      || Month < 1 || Month > 12
      /* Lint fluff:  "conversion from long may lose accuracy" */
      || Day < 1 || Day > DaysInMonth[(int)--Month])