diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-08-18 23:05:23 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-08-18 23:05:23 +0000 |
commit | 310f95183a026af2d7854f830b185116aa770852 (patch) | |
tree | 9751c39191ff0e39e277afe15f66e4682073bd9d /libio | |
parent | e62ee1e44e4d60562ba2b7d7a2ff0556c46df2b2 (diff) | |
download | glibc-310f95183a026af2d7854f830b185116aa770852.tar.gz glibc-310f95183a026af2d7854f830b185116aa770852.tar.xz glibc-310f95183a026af2d7854f830b185116aa770852.zip |
Update.
* libio/fileops.c (_IO_file_xsgetn): Allocate buffer if none is allocated so far. [PR libc/1261].
Diffstat (limited to 'libio')
-rw-r--r-- | libio/fileops.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libio/fileops.c b/libio/fileops.c index decb9d7185..7c6e271495 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -849,6 +849,17 @@ _IO_file_xsgetn (fp, data, n) want = n; + if (fp->_IO_buf_base == NULL) + { + /* Maybe we already have a push back pointer. */ + if (fp->_IO_save_base != NULL) + { + free (fp->_IO_save_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); + } + while (want > 0) { have = fp->_IO_read_end - fp->_IO_read_ptr; |