Fix error check for zlib calls

There are multiple "okay" return values, not just Z_OK. Make sure we
don't bail out needlessly.
pull/8/head
Pierre Ossman 5 years ago committed by Lauri Kasanen
parent 49f9ce8e5b
commit f38e474993

@ -141,7 +141,7 @@ bool ZlibInStream::decompress(bool wait)
zs->avail_in = bytesIn;
int rc = inflate(zs, Z_SYNC_FLUSH);
if (rc != Z_OK) {
if (rc < 0) {
throw Exception("ZlibInStream: inflate failed");
}

@ -156,7 +156,7 @@ void ZlibOutStream::deflate(int flush)
#endif
rc = ::deflate(zs, flush);
if (rc != Z_OK) {
if (rc < 0) {
// Silly zlib returns an error if you try to flush something twice
if ((rc == Z_BUF_ERROR) && (flush != Z_NO_FLUSH))
break;
@ -190,7 +190,7 @@ void ZlibOutStream::checkCompressionLevel()
deflate(Z_SYNC_FLUSH);
rc = deflateParams (zs, newLevel, Z_DEFAULT_STRATEGY);
if (rc != Z_OK) {
if (rc < 0) {
// The implicit flush can result in this error, caused by the
// explicit flush we did above. It should be safe to ignore though
// as the first flush should have left things in a stable state...

Loading…
Cancel
Save