From: Anton Yuzhaninov Date: Thu, 31 Aug 2017 00:49:17 +0000 (-0400) Subject: lib-compression: Fix assert in i_stream_zlib_seek X-Git-Tag: 2.3.0.rc1~1123 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9dadffcd2545eab4b251e83b60cee78ceb1e8362;p=thirdparty%2Fdovecot%2Fcore.git lib-compression: Fix assert in i_stream_zlib_seek Also fix same bug in i_stream_bzlib_seek, i_stream_lz4_seek, i_stream_lzma_seek. --- diff --git a/src/lib-compression/istream-bzlib.c b/src/lib-compression/istream-bzlib.c index 79bbb5fb7a..c73673f8e6 100644 --- a/src/lib-compression/istream-bzlib.c +++ b/src/lib-compression/istream-bzlib.c @@ -225,7 +225,7 @@ i_stream_bzlib_seek(struct istream_private *stream, uoff_t v_offset, bool mark) stream->pos = stream->skip; } else { /* read and cache forward */ - ssize_t ret = -1; + ssize_t ret; do { size_t avail = stream->pos - stream->skip; @@ -234,6 +234,7 @@ i_stream_bzlib_seek(struct istream_private *stream, uoff_t v_offset, bool mark) i_stream_skip(&stream->istream, v_offset - stream->istream.v_offset); + ret = -1; break; } diff --git a/src/lib-compression/istream-lz4.c b/src/lib-compression/istream-lz4.c index 633a1379f7..89e5609f86 100644 --- a/src/lib-compression/istream-lz4.c +++ b/src/lib-compression/istream-lz4.c @@ -204,7 +204,7 @@ i_stream_lz4_seek(struct istream_private *stream, uoff_t v_offset, bool mark) stream->pos = stream->skip; } else { /* read and cache forward */ - ssize_t ret = -1; + ssize_t ret; do { size_t avail = stream->pos - stream->skip; @@ -213,6 +213,7 @@ i_stream_lz4_seek(struct istream_private *stream, uoff_t v_offset, bool mark) i_stream_skip(&stream->istream, v_offset - stream->istream.v_offset); + ret = -1; break; } diff --git a/src/lib-compression/istream-lzma.c b/src/lib-compression/istream-lzma.c index 352b5d3d09..430e6d1b36 100644 --- a/src/lib-compression/istream-lzma.c +++ b/src/lib-compression/istream-lzma.c @@ -234,7 +234,7 @@ i_stream_lzma_seek(struct istream_private *stream, uoff_t v_offset, bool mark) stream->pos = stream->skip; } else { /* read and cache forward */ - ssize_t ret = -1; + ssize_t ret; do { size_t avail = stream->pos - stream->skip; @@ -243,6 +243,7 @@ i_stream_lzma_seek(struct istream_private *stream, uoff_t v_offset, bool mark) i_stream_skip(&stream->istream, v_offset - stream->istream.v_offset); + ret = -1; break; } diff --git a/src/lib-compression/istream-zlib.c b/src/lib-compression/istream-zlib.c index 41278ed167..63c8f2630d 100644 --- a/src/lib-compression/istream-zlib.c +++ b/src/lib-compression/istream-zlib.c @@ -397,7 +397,7 @@ i_stream_zlib_seek(struct istream_private *stream, uoff_t v_offset, bool mark) stream->pos = stream->skip; } else { /* read and cache forward */ - ssize_t ret = -1; + ssize_t ret; do { size_t avail = stream->pos - stream->skip; @@ -406,6 +406,7 @@ i_stream_zlib_seek(struct istream_private *stream, uoff_t v_offset, bool mark) i_stream_skip(&stream->istream, v_offset - stream->istream.v_offset); + ret = -1; break; }