summaryrefslogtreecommitdiff
path: root/time
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-04-15 06:24:31 +0000
committerUlrich Drepper <drepper@redhat.com>2002-04-15 06:24:31 +0000
commit370846959ebcb8109d8d01cc7dba0b29ec0e6ee8 (patch)
treef5a8260754b2a9caacb7ca143dd958e6b60d3c29 /time
parent2160bafc8186ed0ff0c1c75e95028170140fc152 (diff)
downloadglibc-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.c14
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;
}