From fcaa7c0cb208f31a611af8a1218bc48692a52cfd Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Sat, 4 Oct 2025 12:04:31 -0600 Subject: [PATCH] [PATCH] lib-compression: Don't calculate crc32 if using zlib in deflate mode Gbp-Pq: Name 0001-lib-compression-Don-t-calculate-crc32-if-using-zlib-.patch --- src/lib-compression/istream-zlib.c | 8 +++++--- src/lib-compression/ostream-zlib.c | 4 +++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/lib-compression/istream-zlib.c b/src/lib-compression/istream-zlib.c index f551374..93b3473 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 a82750b..6aeccbf 100644 --- a/src/lib-compression/ostream-zlib.c +++ b/src/lib-compression/ostream-zlib.c @@ -219,7 +219,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; -- 2.39.5