libc: Fix mktime returns an uncorrect time in empty TZ case
The mktime API returned an uncorrect time when TZ is set as empty. A timezone UTC/GMT+0 should be implied in the empty case. However mktime keeps previous information about timezone. If mktime was called with a timezone which has DST before, the "defaulttype" member of "state" structure wouldn't be 0. Then it would be used next time, even though UTC/GMT+0 doesn't have DST. Added initialization of the "defaulttype" in the empty TZ case. Change-Id: Ic480c63c548c05444134e0aefb30a7b380e3f40b
This commit is contained in:

committed by
Elliott Hughes

parent
38569312bc
commit
154e2026c8
@@ -1257,6 +1257,7 @@ tzset_locked(void)
|
||||
lclptr->ttis[0].tt_gmtoff = 0;
|
||||
lclptr->ttis[0].tt_abbrind = 0;
|
||||
(void) strcpy(lclptr->chars, gmt);
|
||||
lclptr->defaulttype = 0;
|
||||
} else if (tzload(name, lclptr, TRUE) != 0)
|
||||
if (name[0] == ':' || tzparse(name, lclptr, FALSE) != 0)
|
||||
(void) gmtload(lclptr);
|
||||
|
Reference in New Issue
Block a user