diff --git a/src/sds.c b/src/sds.c index 64c9a9615a0ec5e92d72a1b516ae9846b91e7f60..ef0bb6bf982be3d923644858cb2604824d6ba518 100644 --- a/src/sds.c +++ b/src/sds.c @@ -293,8 +293,9 @@ sds sdscpy(sds s, const char *t) { sds sdscatvprintf(sds s, const char *fmt, va_list ap) { va_list cpy; char *buf, *t; - size_t buflen = 16; + size_t buflen = strlen(fmt)*4; + if (buflen < 32) buflen = 32; while(1) { buf = zmalloc(buflen); if (buf == NULL) return NULL;