From 44afc0684ed2dd3117bf60efa99745cffc2cc513 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 15 Mar 2018 12:20:14 +0200 Subject: [PATCH] imapc: Update mail size also when istream_opened() hook is called When fetching a message body the cached message size was set. However, if istream_opened() hook was used this wasn't done. If a client had fetched both (RFC822.SIZE BODY.PEEK[]) and the server sent a wrong RFC822.SIZE, that size was used for the message body size, which resulted in "Cached message size larger than expected" errors. --- src/lib-storage/index/imapc/imapc-mail-fetch.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib-storage/index/imapc/imapc-mail-fetch.c b/src/lib-storage/index/imapc/imapc-mail-fetch.c index 1d4465daad..9478c5cbd4 100644 --- a/src/lib-storage/index/imapc/imapc-mail-fetch.c +++ b/src/lib-storage/index/imapc/imapc-mail-fetch.c @@ -576,7 +576,8 @@ void imapc_mail_init_stream(struct imapc_mail *mail) index_mail_close_streams(imail); return; } - } else if (mail->body_fetched) { + } + if (mail->body_fetched) { ret = i_stream_get_size(imail->data.stream, TRUE, &size); if (ret < 0) { index_mail_close_streams(imail);