--- src/funcs.c.orig 2006-08-21 16:42:37.000000000 -0700
+++ src/funcs.c 2006-08-21 16:43:20.000000000 -0700
@@ -50,14 +50,14 @@
if ((len = vsnprintf(ms->o.ptr, ms->o.len, fmt, ap)) >= ms->o.len) {
va_end(ap);
- if ((buf = realloc(ms->o.buf, len + 1024)) == NULL) {
+ if ((buf = realloc(ms->o.buf, ms->o.size + len + 1024)) == NULL) {
file_oomem(ms);
return -1;
}
ms->o.ptr = buf + (ms->o.ptr - ms->o.buf);
ms->o.buf = buf;
+ ms->o.size += len + 1024;
ms->o.len = ms->o.size - (ms->o.ptr - ms->o.buf);
- ms->o.size = len + 1024;
va_start(ap, fmt);
len = vsnprintf(ms->o.ptr, ms->o.len, fmt, ap);