From: Timo Sirainen Date: Thu, 3 Apr 2014 09:54:18 +0000 (+0300) Subject: i_stream_read(): If stream_errno is set, fail immediately. X-Git-Tag: 2.2.13.rc1~179 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a2738cdb6d2733fb3e186331d68009421a19ea00;p=thirdparty%2Fdovecot%2Fcore.git i_stream_read(): If stream_errno is set, fail immediately. Previously the stream_errno was reset to 0, but this required the istream implementation to correctly set the stream_errno back, which wasn't often done. --- diff --git a/src/lib/istream.c b/src/lib/istream.c index 81843b4875..e35513b65d 100644 --- a/src/lib/istream.c +++ b/src/lib/istream.c @@ -152,13 +152,12 @@ ssize_t i_stream_read(struct istream *stream) size_t old_size; ssize_t ret; - if (unlikely(stream->closed)) { + if (unlikely(stream->closed || stream->stream_errno != 0)) { errno = stream->stream_errno; return -1; } stream->eof = FALSE; - stream->stream_errno = 0; if (_stream->parent != NULL) i_stream_seek(_stream->parent, _stream->parent_expected_offset);