diff --git a/image-sixel.c b/image-sixel.c index f6eaade3..c37e2cce 100644 --- a/image-sixel.c +++ b/image-sixel.c @@ -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;