From dbcfb16e43af28ba919f651c51d7a2f15af656a1 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Sat, 15 Sep 2018 10:05:24 -0700 Subject: [PATCH] always reset DST rules during tzset do_tzset() did't always reset the DST transition rules r0 and r1. That means the rules from older TZ settings could leak into newer ones. --- src/time/__tz.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/time/__tz.c b/src/time/__tz.c index 51e66514..185642e8 100644 --- a/src/time/__tz.c +++ b/src/time/__tz.c @@ -130,6 +130,8 @@ static void do_tzset() if (old_tz && !strcmp(s, old_tz)) return; + for (i=0; i<5; i++) r0[i] = r1[i] = 0; + if (zi) __munmap((void *)zi, map_size); /* Cache the old value of TZ to check if it has changed. Avoid @@ -194,7 +196,6 @@ static void do_tzset() const unsigned char *p; __tzname[0] = __tzname[1] = 0; __daylight = __timezone = dst_off = 0; - for (i=0; i<5; i++) r0[i] = r1[i] = 0; for (p=types; p