aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--time/getdate.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index f670fe8d6d..5940f6d211 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;