diff options
Diffstat (limited to 'time/tzset.c')
-rw-r--r-- | time/tzset.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/time/tzset.c b/time/tzset.c index 0793027de7..64e2087905 100644 --- a/time/tzset.c +++ b/time/tzset.c @@ -616,8 +616,7 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp) } else { - __offtime (timer, 0, tp); - if (! tz_compute (*timer, tp)) + if (! (__offtime (timer, 0, tp) && tz_compute (*timer, tp))) tp = NULL; leap_correction = 0L; leap_extra_secs = 0; @@ -638,8 +637,10 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp) tp->tm_gmtoff = 0L; } - __offtime (timer, tp->tm_gmtoff - leap_correction, tp); - tp->tm_sec += leap_extra_secs; + if (__offtime (timer, tp->tm_gmtoff - leap_correction, tp)) + tp->tm_sec += leap_extra_secs; + else + tp = NULL; } __libc_lock_unlock (tzset_lock); |