Don't just resize buffer once, repeat until it is big enough. Also use

reallocarray. Reported by tuannguyenduc228 at gmail dot com.
This commit is contained in:
Nicholas Marriott
2026-04-04 12:11:25 +01:00
parent 66c324d7ef
commit 95e40115a2

View File

@@ -487,9 +487,9 @@ static void
sixel_print_add(char **buf, size_t *len, size_t *used, const char *s,
size_t slen)
{
if (*used + slen >= *len + 1) {
while (*used + slen >= *len + 1) {
*buf = xreallocarray(*buf, 2, *len);
(*len) *= 2;
*buf = xrealloc(*buf, *len);
}
memcpy(*buf + *used, s, slen);
(*used) += slen;