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.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/newlib/libc/stdio/fvwrite.c b/newlib/libc/stdio/fvwrite.c
index f036d74..1cb6e0d 100644
--- a/newlib/libc/stdio/fvwrite.c
+++ b/newlib/libc/stdio/fvwrite.c
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+#include <errno.h>
#include "local.h"
#include "fvwrite.h"
@@ -43,7 +44,8 @@
*/
int
-_DEFUN(__sfvwrite, (fp, uio),
+_DEFUN(__sfvwrite_r, (ptr, fp, uio),
+ struct _reent *ptr _AND
register FILE *fp _AND
register struct __suio *uio)
{
@@ -59,7 +61,11 @@ _DEFUN(__sfvwrite, (fp, uio),
/* make sure we can write */
if (cantwrite (fp))
- return EOF;
+ {
+ fp->_flags |= __SERR;
+ ptr->_errno = EBADF;
+ return EOF;
+ }
iov = uio->uio_iov;
len = 0;