diff options
| -rw-r--r-- | src/cc4group.c | 11 |
1 files changed, 6 insertions, 5 deletions
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); |
