From: Ulrich Drepper Date: Mon, 15 Apr 2002 06:24:31 +0000 (+0000) Subject: (__mktime_internal): If year is 69, don't bail out early, but check whether it X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=370846959ebcb8109d8d01cc7dba0b29ec0e6ee8;p=thirdparty%2Fglibc.git (__mktime_internal): If year is 69, don't bail out early, but check whether it overflowed afterwards. --- diff --git a/time/mktime.c b/time/mktime.c index 470c5f5f46e..44491e18cb2 100644 --- a/time/mktime.c +++ b/time/mktime.c @@ -259,8 +259,10 @@ __mktime_internal (struct tm *tp, int sec_requested = sec; - /* Only years after 1970 are defined. */ - if (year < 70) + /* Only years after 1970 are defined. + If year is 69, it might still be representable due to + timezone differnces. */ + if (year < 69) return -1; #if LEAP_SECONDS_POSSIBLE @@ -370,6 +372,14 @@ __mktime_internal (struct tm *tp, return -1; } + if (year == 69) + { + /* If year was 69, need to check whether the time was representable + or not. */ + if (t < 0 || t > 2 * 24 * 60 * 60) + return -1; + } + *tp = tm; return t; }