diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2019-04-17 12:10:39 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2019-04-17 12:10:39 +0200 |
| commit | f5aa085db227849849f886d5312bfd2ce42e943c (patch) | |
| tree | 22bf426b83622ff7daff81e8558834209bcaed1b /src/cc4group.c | |
| parent | 19b23eafe4d8039e30bc4f49a4c04ebea9e85cda (diff) | |
| download | cc4group-f5aa085db227849849f886d5312bfd2ce42e943c.tar.gz cc4group-f5aa085db227849849f886d5312bfd2ce42e943c.zip | |
Fix error handling of deflate
Diffstat (limited to 'src/cc4group.c')
| -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); |
