[tz] [PROPOSED 3/3] Fix subscript error when timecnt == 0
Paul Eggert
eggert at cs.ucla.edu
Tue Jun 5 00:28:33 UTC 2018
* NEWS: Mention this.
* localtime.c (tzloadbody): Avoid subscript error if timecnt is
zero, which tzfile(5) allows.
---
NEWS | 4 ++++
localtime.c | 3 ++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/NEWS b/NEWS
index 01873ab..34f7810 100644
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,10 @@ Unreleased, experimental changes
format that would allow TZif files with POSIX-style TZ strings and
without transitions or time types.
+ A read-access subscript error in localtime.c has been fixed.
+ It could occur only in TZif files with timecnt == 0, something that
+ does not happen in practice now but could happen in future versions.
+
localtime.c no longer ignores TZif POSIX-style TZ strings that
specify only standard time. Instead, these TZ strings now
override the default time type for timestamps after the last
diff --git a/localtime.c b/localtime.c
index 9c31642..f205363 100644
--- a/localtime.c
+++ b/localtime.c
@@ -632,7 +632,8 @@ tzloadbody(char const *name, struct state *sp, bool doextend,
sp->timecnt--;
for (i = 0; i < ts->timecnt; i++)
- if (sp->ats[sp->timecnt - 1] < ts->ats[i])
+ if (sp->timecnt == 0
+ || sp->ats[sp->timecnt - 1] < ts->ats[i])
break;
while (i < ts->timecnt
&& sp->timecnt < TZ_MAX_TIMES) {
--
2.17.1
More information about the tz
mailing list