diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | time/getdate.c | 5 |
2 files changed, 9 insertions, 1 deletions
@@ -1,3 +1,8 @@ +1999-09-16 Ulrich Drepper <drepper@cygnus.com> + + * time/getdate.c (__getdate_r): Pass correct year to check_mday. + Reported by Vern Staats <staatsvr@asc.hpc.mil>. + 1999-09-14 Ulrich Drepper <drepper@cygnus.com> * db2/mutex/sparc.gcc (TSL_UNSET): Dereference pointer. diff --git a/time/getdate.c b/time/getdate.c index 9957411fd8..01bd2db0ea 100644 --- a/time/getdate.c +++ b/time/getdate.c @@ -25,6 +25,8 @@ #include <time.h> #include <sys/stat.h> +#define TM_YEAR_BASE 1900 + /* Prototypes for local functions. */ static int first_wday (int year, int mon, int wday); @@ -225,7 +227,8 @@ __getdate_r (const char *string, struct tm *tp) /* Check if the day of month is within range, and if the time can be represented in a time_t. We make use of the fact that the mktime call normalizes the struct tm. */ - if ((!mday_ok && !check_mday (tp->tm_year, tp->tm_mon, tp->tm_mday)) + if ((!mday_ok && !check_mday (TM_YEAR_BASE + tp->tm_year, tp->tm_mon, + tp->tm_mday)) || mktime (tp) == (time_t) -1) return 8; |