From: Timo Sirainen Date: Fri, 1 Oct 2010 16:46:03 +0000 (+0100) Subject: zlib: eof_offset wasn't always set right, causing assert-crashes. X-Git-Tag: 2.0.5~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=344a9a9c2611c3b3c104cf7526f75e57bf93cdd0;p=thirdparty%2Fdovecot%2Fcore.git zlib: eof_offset wasn't always set right, causing assert-crashes. --- diff --git a/src/plugins/zlib/istream-bzlib.c b/src/plugins/zlib/istream-bzlib.c index d92dbc3d43..b77a1b9e93 100644 --- a/src/plugins/zlib/istream-bzlib.c +++ b/src/plugins/zlib/istream-bzlib.c @@ -152,7 +152,8 @@ static ssize_t i_stream_bzlib_read(struct istream_private *stream) i_fatal_status(FATAL_OUTOFMEM, "bzlib.read(%s): Out of memory", i_stream_get_name(&stream->istream)); case BZ_STREAM_END: - zstream->eof_offset = stream->istream.v_offset + stream->pos; + zstream->eof_offset = stream->istream.v_offset + + (stream->pos - stream->skip); if (size == 0) { stream->istream.eof = TRUE; return -1; diff --git a/src/plugins/zlib/istream-zlib.c b/src/plugins/zlib/istream-zlib.c index 84a8a46ebd..7a325cd4c9 100644 --- a/src/plugins/zlib/istream-zlib.c +++ b/src/plugins/zlib/istream-zlib.c @@ -287,7 +287,8 @@ static ssize_t i_stream_zlib_read(struct istream_private *stream) i_fatal_status(FATAL_OUTOFMEM, "zlib.read(%s): Out of memory", i_stream_get_name(&stream->istream)); case Z_STREAM_END: - zstream->eof_offset = stream->istream.v_offset + stream->pos; + zstream->eof_offset = stream->istream.v_offset + + (stream->pos - stream->skip); i_stream_skip(stream->parent, zstream->prev_size - zstream->zs.avail_in); zstream->zs.avail_in = 0;