From: Timo Sirainen Date: Fri, 23 Dec 2016 18:14:43 +0000 (-0500) Subject: lib-storage: istream-mail - Use EPIPE if istream is too small X-Git-Tag: 2.3.0.rc1~2364 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=aba4cdf6d9de7d0a900933f390df8a822bbdc08c;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: istream-mail - Use EPIPE if istream is too small --- diff --git a/src/lib-storage/index/istream-mail.c b/src/lib-storage/index/istream-mail.c index dfccf32c6c..313c02c116 100644 --- a/src/lib-storage/index/istream-mail.c +++ b/src/lib-storage/index/istream-mail.c @@ -64,11 +64,15 @@ i_stream_mail_set_size_corrupted(struct mail_istream *mstream, size_t size) char chr; if (mstream->expected_size < cur_size) { + /* input stream is larger than cached message size */ str = "smaller"; chr = '<'; + mstream->istream.istream.stream_errno = EINVAL; } else { + /* input stream is smaller than cached message size */ str = "larger"; chr = '>'; + mstream->istream.istream.stream_errno = EPIPE; } mail_id = i_stream_mail_get_cached_mail_id(mstream); @@ -84,7 +88,6 @@ i_stream_mail_set_size_corrupted(struct mail_istream *mstream, size_t size) t_strdup_printf("read(%s) failed: %s", i_stream_get_name(&mstream->istream.istream), mstream->istream.iostream.error)); - mstream->istream.istream.stream_errno = EINVAL; } static ssize_t