2011-04-08 Jon TURNEY <[email protected]> * compress_bz.cc (read, peek): Consistently return -1 and set lasterr on an error. * compress_gz.cc (read, write, peek): Ditto.
Signed-off-by: Jon TURNEY <[email protected]> --- compress_bz.cc | 12 +++++++++--- compress_gz.cc | 20 ++++++++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/compress_bz.cc b/compress_bz.cc index 866a1ff..f45f434 100644 --- a/compress_bz.cc +++ b/compress_bz.cc @@ -57,7 +57,10 @@ ssize_t compress_bz::read (void *buffer, size_t len) { if (!initialisedOk || writing) - return EBADF; + { + lasterr = EBADF; + return -1; + } if (endReached) return 0; if (len == 0) @@ -143,10 +146,13 @@ ssize_t compress_bz::peek (void *buffer, size_t len) lasterr = EBADF; return -1; } - + /* can only peek 512 bytes */ if (len > 512) - return ENOMEM; + { + lasterr = ENOMEM; + return -1; + } if (len > peeklen) { diff --git a/compress_gz.cc b/compress_gz.cc index cff772e..7686adf 100644 --- a/compress_gz.cc +++ b/compress_gz.cc @@ -231,7 +231,10 @@ compress_gz::read (void *buffer, size_t len) Byte *next_out; /* == stream.next_out but not forced far (for MSDOS) */ if (mode != 'r') - return Z_STREAM_ERROR; + { + z_err = Z_STREAM_ERROR; + return -1; + } if (z_err == Z_DATA_ERROR || z_err == Z_ERRNO) return -1; @@ -336,7 +339,10 @@ ssize_t compress_gz::write (const void *buffer, size_t len) { if (mode != 'w') - return Z_STREAM_ERROR; + { + z_err = Z_STREAM_ERROR; + return -1; + } stream.next_in = (Bytef *) buffer; stream.avail_in = len; @@ -368,10 +374,16 @@ ssize_t compress_gz::peek (void *buffer, size_t len) { if (mode != 'r') - return Z_STREAM_ERROR; + { + z_err = Z_STREAM_ERROR; + return -1; + } /* can only peek 512 bytes */ if (len > 512) - return ENOMEM; + { + z_err = ENOMEM; + return -1; + } if (len > peeklen) { -- 1.7.4
