diff options
author | Mark Adler <madler@alumni.caltech.edu> | 2019-04-13 17:05:16 -0700 |
---|---|---|
committer | Mark Adler <madler@alumni.caltech.edu> | 2019-04-13 17:08:50 -0700 |
commit | 79baebe50e4d6b73ae1f8b603f0ef41300110aa3 (patch) | |
tree | ce453518c642755fafd819d8e36ba0b79ceff069 /gzwrite.c | |
parent | 0e96d8e7c7079ab9f07cc7b57ae3ca9de8c80742 (diff) | |
download | zlib-79baebe50e4d6b73ae1f8b603f0ef41300110aa3.tar.gz |
Avoid adding empty gzip member after gzflush with Z_FINISH.
Diffstat (limited to 'gzwrite.c')
-rw-r--r-- | gzwrite.c | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -97,6 +97,15 @@ local int gz_comp(state, flush) return 0; } + /* check for a pending reset */ + if (state->reset) { + /* don't start a new gzip member unless there is data to write */ + if (strm->avail_in == 0) + return 0; + deflateReset(strm); + state->reset = 0; + } + /* run deflate() on provided input until it produces no more output */ ret = Z_OK; do { @@ -134,7 +143,7 @@ local int gz_comp(state, flush) /* if that completed a deflate stream, allow another to start */ if (flush == Z_FINISH) - deflateReset(strm); + state->reset = 1; /* all done, no errors */ return 0; |