# HG changeset patch # User Mike Becker # Date 1705443336 -3600 # Node ID b02ad05c7f2da9f10df1bd679424b95490bc8370 # Parent 85859399a0cc6ad7e2a540d278aeabc1d908c245 fix missing va_end() calls diff -r 85859399a0cc -r b02ad05c7f2d src/printf.c --- a/src/printf.c Tue Jan 16 23:13:01 2024 +0100 +++ b/src/printf.c Tue Jan 16 23:15:36 2024 +0100 @@ -61,17 +61,21 @@ va_copy(ap2, ap); int ret = vsnprintf(buf, CX_PRINTF_SBO_SIZE, fmt, ap); if (ret < 0) { + va_end(ap2); return ret; } else if (ret < CX_PRINTF_SBO_SIZE) { + va_end(ap2); return (int) wfc(buf, 1, ret, stream); } else { int len = ret + 1; char *newbuf = malloc(len); if (!newbuf) { + va_end(ap2); return -1; } ret = vsnprintf(newbuf, len, fmt, ap2); + va_end(ap2); if (ret > 0) { ret = (int) wfc(newbuf, 1, ret, stream); } @@ -124,6 +128,7 @@ } } } + va_end(ap2); return s; }