From f5aa085db227849849f886d5312bfd2ce42e943c Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Wed, 17 Apr 2019 12:10:39 +0200 Subject: Fix error handling of deflate --- src/cc4group.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/cc4group.c') diff --git a/src/cc4group.c b/src/cc4group.c index 82e8df5..f040f23 100644 --- a/src/cc4group.c +++ b/src/cc4group.c @@ -1614,7 +1614,7 @@ static bool cc4group_deflateToCallback(WriteCallback* const callback, const void callback->gzStream.next_in = (void*)data; callback->gzStream.avail_in = size; - int ret = Z_OK; + int ret = Z_BUF_ERROR; // skip the gzip magic if not done yet if(!callback->magicDone) @@ -1627,10 +1627,6 @@ static bool cc4group_deflateToCallback(WriteCallback* const callback, const void ret = deflate(&callback->gzStream, Z_NO_FLUSH); } - else if(size == 0) - { - ret = Z_BUF_ERROR; - } while(ret == Z_BUF_ERROR || callback->gzStream.avail_in > 0) { @@ -1645,6 +1641,11 @@ static bool cc4group_deflateToCallback(WriteCallback* const callback, const void { cc4group_flushBufferedWrite(callback); } + + if(ret == Z_STREAM_ERROR) + { + return false; + } } assert(callback->gzStream.avail_in == 0); -- cgit v1.2.3-54-g00ecf