diff options
author | Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr> | 2018-12-05 21:01:22 +0100 |
---|---|---|
committer | Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr> | 2018-12-05 21:01:22 +0100 |
commit | 72b8692d7e640eb85ea0fb7de6d5e797512691c1 (patch) | |
tree | 5e98d09fcf975415b8cac7237764d565f6ebddaa /time/tzfile.c | |
parent | bd598da9f454bc1091b4ebe0303b07e6f96ca130 (diff) | |
download | glibc-72b8692d7e640eb85ea0fb7de6d5e797512691c1.tar.gz glibc-72b8692d7e640eb85ea0fb7de6d5e797512691c1.tar.xz glibc-72b8692d7e640eb85ea0fb7de6d5e797512691c1.zip |
Y2038: make __tz_convert compatible with 64-bit-time
Now that __time64_t exists, we can switch internal function __tz_convert from 32-bit to 64-bit time. This involves switching some other internal functions as well, namely __tz_compute and __offtime. Tested with 'make check' on x86_64-linux-gnu and i686-linux.gnu. * include/time.h (__tz_compute): Replace time_t with __time64_t. (__tz_convert): Replace time_t* with __time64_t. (__offtime): Replace time_t* with __time64_t. * time/gmtime.c (__gmtime_r): Adjust call to __tz_convert. (gmtime): Likewise. * time/localtime.c (__localtime_r): Likewise. (localtime): Likewise. * time/offtime.c: Replace time_t with __time64_t. * time/tzset.c: Likewise.
Diffstat (limited to 'time/tzfile.c')
-rw-r--r-- | time/tzfile.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/time/tzfile.c b/time/tzfile.c index 844a68de8c..3920525bf3 100644 --- a/time/tzfile.c +++ b/time/tzfile.c @@ -633,16 +633,10 @@ __tzfile_compute (__time64_t timer, int use_localtime, /* Convert to broken down structure. If this fails do not use the string. */ - { - time_t truncated = timer; - if (__glibc_unlikely (truncated != timer - || ! __offtime (&truncated, 0, tp))) - goto use_last; - } - - /* Use the rules from the TZ string to compute the change. - timer fits into time_t due to the truncation check - above. */ + if (__glibc_unlikely (! __offtime (timer, 0, tp))) + goto use_last; + + /* Use the rules from the TZ string to compute the change. */ __tz_compute (timer, tp, 1); /* If tzspec comes from posixrules loaded by __tzfile_default, |