diff --git a/src/common/SSLUtil.cc b/src/common/SSLUtil.cc index 6b3dda0b31..6fdd57d52f 100644 --- a/src/common/SSLUtil.cc +++ b/src/common/SSLUtil.cc @@ -94,7 +94,7 @@ namespace ssl_util /** * Buffer length for zlib inflate/deflate */ - #define ZBUFFER 65536 + #define ZBUFFER 16384 int zlib_decompress(const std::string& in, std::string& out) { @@ -138,7 +138,8 @@ namespace ssl_util rc = inflate(&zs, Z_FINISH); - if ( rc != Z_STREAM_END && rc != Z_OK ) + if ( (rc != Z_STREAM_END && rc != Z_OK && rc != Z_BUF_ERROR) + || (rc == Z_BUF_ERROR && zs.avail_out == ZBUFFER) ) { inflateEnd(&zs);