aboutsummaryrefslogtreecommitdiff
path: root/newlib/libc/stdio/fvwrite.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/stdio/fvwrite.c')
-rw-r--r--newlib/libc/stdio/fvwrite.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/newlib/libc/stdio/fvwrite.c b/newlib/libc/stdio/fvwrite.c
index 3143b01..f036d74 100644
--- a/newlib/libc/stdio/fvwrite.c
+++ b/newlib/libc/stdio/fvwrite.c
@@ -129,7 +129,11 @@ _DEFUN(__sfvwrite, (fp, uio),
fp->_bf._base,
curpos + len);
if (!ptr)
- goto err;
+ {
+ /* Free buffer which is no longer used. */
+ _free_r (_REENT, fp->_bf._base);
+ goto err;
+ }
fp->_bf._base = ptr;
fp->_p = ptr + curpos;
fp->_bf._size = curpos + len;