Mercurial > dovecot > core-2.2
changeset 18898:7a6452869981
istream-zlib: Don't overwrite parent istream's error on gz header/trailer read errors.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 30 Jun 2015 14:26:00 +0300 |
parents | 3bf5df6f63b2 |
children | ae19beafa55b |
files | src/lib-compression/istream-zlib.c |
diffstat | 1 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-compression/istream-zlib.c Tue Jun 30 13:58:15 2015 +0300 +++ b/src/lib-compression/istream-zlib.c Tue Jun 30 14:26:00 2015 +0300 @@ -75,7 +75,8 @@ ret = i_stream_read_data(stream->parent, &data, &size, zstream->prev_size); if (size == zstream->prev_size) { - if (ret == -1) { + stream->istream.stream_errno = stream->parent->stream_errno; + if (ret == -1 && stream->istream.stream_errno == 0) { zlib_read_error(zstream, "missing gz header"); stream->istream.stream_errno = EINVAL; } @@ -141,7 +142,8 @@ ret = i_stream_read_data(stream->parent, &data, &size, GZ_TRAILER_SIZE-1); if (size == zstream->prev_size) { - if (ret == -1) { + stream->istream.stream_errno = stream->parent->stream_errno; + if (ret == -1 && stream->istream.stream_errno == 0) { zlib_read_error(zstream, "missing gz trailer"); stream->istream.stream_errno = EINVAL; }