We don't need to copy the entire printbuffer, only the part that is used.
@@ -300,7 +300,7 @@ static unsigned char* ensure(printbuffer *p, size_t needed)
}
if (newbuffer)
{
- memcpy(newbuffer, p->buffer, p->length);
+ memcpy(newbuffer, p->buffer, p->offset + 1);
cJSON_free(p->buffer);