diff options
author | Benjamin Peterson <benjamin@python.org> | 2018-09-15 10:05:24 -0700 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2018-09-15 13:22:12 -0400 |
commit | dbcfb16e43af28ba919f651c51d7a2f15af656a1 (patch) | |
tree | ce99f9262a3288efe363e311cd26aae5983ec5f9 /src | |
parent | d6c855caa88ddb1ab6e24e23a14b1e7baf4ba9c7 (diff) | |
download | musl-dbcfb16e43af28ba919f651c51d7a2f15af656a1.tar.gz musl-dbcfb16e43af28ba919f651c51d7a2f15af656a1.tar.bz2 musl-dbcfb16e43af28ba919f651c51d7a2f15af656a1.tar.xz musl-dbcfb16e43af28ba919f651c51d7a2f15af656a1.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/time/__tz.c | 3 |
1 files changed, 2 insertions, 1 deletions
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<abbrevs; p+=6) { if (!p[4] && !__tzname[0]) { __tzname[0] = (char *)abbrevs + p[5]; |