]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-compression: Fix assert in i_stream_zlib_seek
authorAnton Yuzhaninov <citrin@citrin.ru>
Thu, 31 Aug 2017 00:49:17 +0000 (20:49 -0400)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Thu, 31 Aug 2017 07:09:29 +0000 (10:09 +0300)
Also fix same bug in i_stream_bzlib_seek, i_stream_lz4_seek, i_stream_lzma_seek.

src/lib-compression/istream-bzlib.c
src/lib-compression/istream-lz4.c
src/lib-compression/istream-lzma.c
src/lib-compression/istream-zlib.c

index 79bbb5fb7a73922d1f4dca7e5c5edff471725d30..c73673f8e61a8acdf6fca54a732a7a0c00cceb4e 100644 (file)
@@ -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;
                        }
 
index 633a1379f71feecd466e6a6575d393d1bb569be3..89e5609f8640d4cdccda300dc5b9727ee44c14f2 100644 (file)
@@ -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;
                        }
 
index 352b5d3d09514b78735f27ca360511236ee25c5b..430e6d1b36e893875b1476a98ac24dc63c9e6916 100644 (file)
@@ -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;
                        }
 
index 41278ed167e6ef8fde260ea77006696e2b75b455..63c8f2630deb827df07827b7e7832a0165a45c86 100644 (file)
@@ -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;
                        }