diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | libio/genops.c | 5 |
2 files changed, 8 insertions, 2 deletions
@@ -1,3 +1,8 @@ +1999-08-05 Ulrich Drepper <drepper@cygnus.com> + + * libio/genops.c (_IO_flush_all): Don't access elements beyond what + 2.0 defined if they are not available. + 1999-08-05 Thorsten Kukuk <kukuk@suse.de> * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h (O_RSYNC, O_DSYNC): 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; |