diff --git a/lib/libc/stdio/vfprintf.c b/lib/libc/stdio/vfprintf.c index 826ea288c4b0..8ca5ac424a12 100644 --- a/lib/libc/stdio/vfprintf.c +++ b/lib/libc/stdio/vfprintf.c @@ -384,9 +384,11 @@ __wcsconv(wchar_t *wcsarg, int prec) break; mbp += clen; } - *mbp = '\0'; - if (clen == (size_t)-1) + if (clen == (size_t)-1) { + free(convbuf); return (NULL); + } + *mbp = '\0'; return (convbuf); }