From: Michael M Slusarz Date: Sat, 4 Oct 2025 18:04:31 +0000 (-0600) Subject: lib-compression: Don't calculate crc32 if using zlib in deflate mode X-Git-Tag: 2.4.2~72 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cac140a9e4e12485bde4348b8a8c94a7a96a6e5e;p=thirdparty%2Fdovecot%2Fcore.git lib-compression: Don't calculate crc32 if using zlib in deflate mode --- diff --git a/src/lib-compression/istream-zlib.c b/src/lib-compression/istream-zlib.c index f551374724..93b3473071 100644 --- a/src/lib-compression/istream-zlib.c +++ b/src/lib-compression/istream-zlib.c @@ -264,9 +264,11 @@ static ssize_t i_stream_zlib_read(struct istream_private *stream) ret = inflate(&zstream->zs, Z_SYNC_FLUSH); out_size -= zstream->zs.avail_out; - zstream->crc32 = crc32_data_more(zstream->crc32, - stream->w_buffer + stream->pos, - out_size); + /* CRC32 is only needed for GZ trailer. */ + if (zstream->gz) + zstream->crc32 = crc32_data_more(zstream->crc32, + stream->w_buffer + stream->pos, + out_size); stream->pos += out_size; size_t bytes_consumed = size - zstream->zs.avail_in; diff --git a/src/lib-compression/ostream-zlib.c b/src/lib-compression/ostream-zlib.c index 5cc2215737..ed41f5054f 100644 --- a/src/lib-compression/ostream-zlib.c +++ b/src/lib-compression/ostream-zlib.c @@ -228,7 +228,9 @@ o_stream_zlib_send_chunk(struct zlib_ostream *zstream, } size -= zs->avail_in; - zstream->crc = crc32_data_more(zstream->crc, data, size); + /* CRC32 is only needed for GZ trailer. */ + if (zstream->gz) + zstream->crc = crc32_data_more(zstream->crc, data, size); zstream->bytes32 += size; zstream->flushed = FALSE; return size;