|
|
@@ -2971,7 +2971,14 @@ inline bool gzip_decompressor::decompress(const char *data, size_t data_length,
|
|
|
strm_.avail_out = static_cast<uInt>(buff.size());
|
|
|
strm_.next_out = reinterpret_cast<Bytef *>(buff.data());
|
|
|
|
|
|
+ auto prev_avail_in = strm_.avail_in;
|
|
|
+
|
|
|
ret = inflate(&strm_, Z_NO_FLUSH);
|
|
|
+
|
|
|
+ if (prev_avail_in - strm_.avail_in == 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
assert(ret != Z_STREAM_ERROR);
|
|
|
switch (ret) {
|
|
|
case Z_NEED_DICT:
|