diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-04-15 06:24:31 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-04-15 06:24:31 +0000 |
commit | 370846959ebcb8109d8d01cc7dba0b29ec0e6ee8 (patch) | |
tree | f5a8260754b2a9caacb7ca143dd958e6b60d3c29 /time | |
parent | 2160bafc8186ed0ff0c1c75e95028170140fc152 (diff) | |
download | glibc-370846959ebcb8109d8d01cc7dba0b29ec0e6ee8.tar.gz |
(__mktime_internal): If year is 69, don't bail out early, but check whether it
overflowed afterwards.
Diffstat (limited to 'time')
-rw-r--r-- | time/mktime.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/time/mktime.c b/time/mktime.c index 470c5f5f46..44491e18cb 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; } |