minor fix to tz name checking

if a zoneinfo file is not (or is no longer) in use, don't check the
abbrevs pointers, which may be invalid.
This commit is contained in:
Rich Felker 2013-08-24 13:10:01 -04:00
parent d78be392e1
commit 32985d4f63

View File

@ -395,8 +395,8 @@ const char *__tm_to_tzname(const struct tm *tm)
const void *p = tm->__tm_zone;
LOCK(lock);
do_tzset();
if (p != __gmt && p != __tzname[0] && p != __tzname[1]
&& (uintptr_t)p-(uintptr_t)abbrevs >= abbrevs_end - abbrevs)
if (p != __gmt && p != __tzname[0] && p != __tzname[1] &&
(!zi || (uintptr_t)p-(uintptr_t)abbrevs >= abbrevs_end - abbrevs))
p = "";
UNLOCK(lock);
return p;