Do not risk writing over the end of the buffer when it ends in #

(because strchr \0 will be non-NULL), reported by Robert Morris in
GitHub issue 3610.
This commit is contained in:
nicm 2023-07-03 10:48:26 +00:00
parent e79fb214f8
commit ac43186dff

View File

@ -3664,7 +3664,9 @@ format_skip(const char *s, const char *end)
for (; *s != '\0'; s++) { for (; *s != '\0'; s++) {
if (*s == '#' && s[1] == '{') if (*s == '#' && s[1] == '{')
brackets++; brackets++;
if (*s == '#' && strchr(",#{}:", s[1]) != NULL) { if (*s == '#' &&
s[1] != '\0' &&
strchr(",#{}:", s[1]) != NULL) {
s++; s++;
continue; continue;
} }