summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/cc4group.c11
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);