dovecot-2.2: i_stream_read(): If stream_errno is set, fail immed...

dovecot at dovecot.org dovecot at dovecot.org
Thu Apr 3 09:55:04 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/2e275f4e51c3
changeset: 17184:2e275f4e51c3
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Apr 03 12:54:18 2014 +0300
description:
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.

diffstat:

 src/lib/istream.c |  3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diffs (18 lines):

diff -r 72b50ae2f0c3 -r 2e275f4e51c3 src/lib/istream.c
--- a/src/lib/istream.c	Thu Apr 03 12:50:43 2014 +0300
+++ b/src/lib/istream.c	Thu Apr 03 12:54:18 2014 +0300
@@ -152,13 +152,12 @@
 	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);


More information about the dovecot-cvs mailing list