about summary refs log tree commit diff
path: root/libio
diff options
context:
space:
mode:
Diffstat (limited to 'libio')
-rw-r--r--libio/genops.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libio/genops.c b/libio/genops.c
index a8f34463ad..07dc4e81dd 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -742,8 +742,9 @@ _IO_flush_all ()
   _IO_FILE *fp;
   for (fp = _IO_list_all; fp != NULL; fp = fp->_chain)
     if (((fp->_mode < 0 && fp->_IO_write_ptr > fp->_IO_write_base)
-	 || (fp->_mode > 0 && (fp->_wide_data->_IO_write_ptr
-			       > fp->_wide_data->_IO_write_base)))
+	 || (fp->_vtable_offset == 0
+	     && fp->_mode > 0 && (fp->_wide_data->_IO_write_ptr
+				  > fp->_wide_data->_IO_write_base)))
 	&& _IO_OVERFLOW (fp, EOF) == EOF)
       result = EOF;
   return result;