fix handling of overly-long TZ environment variable values
authorRich Felker <dalias@aerifal.cx>
Sat, 9 Nov 2013 01:50:59 +0000 (20:50 -0500)
committerRich Felker <dalias@aerifal.cx>
Sat, 9 Nov 2013 01:50:59 +0000 (20:50 -0500)
the rest of the code is not prepared to handle an empty TZ string, so
falling back to __gmt ("GMT"), just as if TZ had been blank or unset,
is the preferable action.

src/time/__tz.c

index b4358f7..9d56a61 100644 (file)
@@ -138,7 +138,7 @@ static void do_tzset()
         * free so as not to pull it into static programs. Growth
         * strategy makes it so free would have minimal benefit anyway. */
        i = strlen(s);
-       if (i > PATH_MAX+1) s = "", i = 0;
+       if (i > PATH_MAX+1) s = __gmt, i = 3;
        if (i >= old_tz_size) {
                old_tz_size *= 2;
                if (i >= old_tz_size) old_tz_size = i+1;