diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-09-23 16:36:09 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-09-23 16:36:09 +0000 |
commit | 32053042d4785ffeae3a032808480c8dc2f98607 (patch) | |
tree | bfa6fb199b0f47051f624eb2d93778e54fcd2989 | |
parent | 997470b3e151845b067b0a7c865f9ab7177d14c1 (diff) | |
download | glibc-32053042d4785ffeae3a032808480c8dc2f98607.tar.gz |
[BZ #394]
2005-09-23 Ulrich Drepper <drepper@redhat.com>
[BZ #394]
* libio/fmemopen.c (fmemopen_write): Return 0 instead of -1 if
nothing can be written.
* libio/iofopncook.c (_IO_cookie_write): If something went wrong,
set error bit.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | libio/fmemopen.c | 2 | ||||
-rw-r--r-- | libio/iofopncook.c | 11 |
3 files changed, 18 insertions, 3 deletions
@@ -1,3 +1,11 @@ +2005-09-23 Ulrich Drepper <drepper@redhat.com> + + [BZ #394] + * libio/fmemopen.c (fmemopen_write): Return 0 instead of -1 if + nothing can be written. + * libio/iofopncook.c (_IO_cookie_write): If something went wrong, + set error bit. + 2005-09-22 Ulrich Drepper <drepper@redhat.com> [BZ #281] diff --git a/libio/fmemopen.c b/libio/fmemopen.c index 7c8769a130..b847f62c9a 100644 --- a/libio/fmemopen.c +++ b/libio/fmemopen.c @@ -127,7 +127,7 @@ fmemopen_write (void *cookie, const char *b, size_t s) if ((size_t) (c->pos + addnullc) == c->size) { __set_errno (ENOSPC); - return -1; + return 0; } s = c->size - c->pos - addnullc; } diff --git a/libio/iofopncook.c b/libio/iofopncook.c index 9c5503d1f2..976ff5093a 100644 --- a/libio/iofopncook.c +++ b/libio/iofopncook.c @@ -64,9 +64,16 @@ _IO_cookie_write (fp, buf, size) struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp; if (cfile->__io_functions.write == NULL) - return -1; + { + fp->_flags |= _IO_ERR_SEEN; + return 0; + } + + _IO_ssize_t n = cfile->__io_functions.write (cfile->__cookie, buf, size); + if (n < size) + fp->_flags |= _IO_ERR_SEEN; - return cfile->__io_functions.write (cfile->__cookie, buf, size); + return n; } static _IO_off64_t |