Fix error check for zlib calls

There are multiple "okay" return values, not just Z_OK. Make sure we
don't bail out needlessly.
This commit is contained in:
Pierre Ossman 2020-02-27 13:35:41 +01:00 committed by Lauri Kasanen
parent 49f9ce8e5b
commit f38e474993
2 changed files with 3 additions and 3 deletions

View File

@ -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");
}

View File

@ -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...