fix mishandling of empty or blank TZ environment variable
authorRich Felker <dalias@aerifal.cx>
Sat, 24 Aug 2013 03:07:09 +0000 (23:07 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 24 Aug 2013 03:07:09 +0000 (23:07 -0400)
the empty TZ string was matching equal to the initial value of the
cached TZ name, thus causing do_tzset never to run and never to
initialize the time zone data.

src/time/__tz.c

index a76a7b4..36b5980 100644 (file)
@@ -127,7 +127,7 @@ static void do_tzset()
                "/usr/share/zoneinfo/\0/share/zoneinfo/\0/etc/zoneinfo/\0";
 
        s = getenv("TZ");
-       if (!s) s = "";
+       if (!s || !*s) s = "GMT0";
 
        if (old_tz && !strcmp(s, old_tz)) return;