From: Aki Tuomi Date: Tue, 3 Mar 2020 11:22:11 +0000 (+0200) Subject: lib-compression: ostream-bzlib2 - Do not finish stream early X-Git-Tag: 2.3.11.2~564 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=955c092122c1eef2344b546174c7ae38868e346b;p=thirdparty%2Fdovecot%2Fcore.git lib-compression: ostream-bzlib2 - Do not finish stream early Flushing can happen when not finishing stream, so do not finalize stream until it's the final flush. --- diff --git a/src/lib-compression/ostream-bzlib.c b/src/lib-compression/ostream-bzlib.c index 9839fab6fa..a8a488e58b 100644 --- a/src/lib-compression/ostream-bzlib.c +++ b/src/lib-compression/ostream-bzlib.c @@ -112,6 +112,10 @@ static int o_stream_bzlib_send_flush(struct bzlib_ostream *zstream) if ((ret = o_stream_zlib_send_outbuf(zstream)) <= 0) return ret; + /* do not attempt to finish the stream early */ + if (!final) + return 1; + i_assert(zstream->outbuf_used == 0); do { len = sizeof(zstream->outbuf) - zs->avail_out;