Browse Source

avoid out-of-bounds read for invalid quoted timezone

Parsing the timezone name must stop when reaching the null terminator.
In that case, there is no '>' to skip.
master
Samuel Holland 6 years ago
committed by Rich Felker
parent
commit
8e452abae6
  1. 4
      src/time/__tz.c

4
src/time/__tz.c

@ -86,9 +86,9 @@ static void getname(char *d, const char **p)
int i;
if (**p == '<') {
++*p;
for (i=0; (*p)[i]!='>' && i<TZNAME_MAX; i++)
for (i=0; (*p)[i] && (*p)[i]!='>' && i<TZNAME_MAX; i++)
d[i] = (*p)[i];
++*p;
if ((*p)[i]) ++*p;
} else {
for (i=0; ((*p)[i]|32)-'a'<26U && i<TZNAME_MAX; i++)
d[i] = (*p)[i];

Loading…
Cancel
Save