Loading...
--- Libc/Libc-1158.1.2/stdio/FreeBSD/vfprintf.c
+++ Libc/Libc-997.90.3/stdio/FreeBSD/vfprintf.c
@@ -890,11 +890,11 @@
if (flags & LONGINT) {
wchar_t *wcp;
- free(convbuf);
- if ((wcp = GETARG(wchar_t *)) == NULL) {
- convbuf = NULL;
+ if (convbuf != NULL)
+ free(convbuf);
+ if ((wcp = GETARG(wchar_t *)) == NULL)
cp = "(null)";
- } else {
+ else {
convbuf = __wcsconv(wcp, prec, loc);
if (convbuf == NULL) {
fp->_flags |= __SERR;
@@ -1390,7 +1390,8 @@
if (dtoaresult != NULL)
freedtoa(dtoaresult);
#endif
- free(convbuf);
+ if (convbuf != NULL)
+ free(convbuf);
if (__sferror(fp))
ret = EOF;
if ((argtable != NULL) && (argtable != statargtable))