From: Timo Sirainen Date: Thu, 15 Mar 2018 10:20:14 +0000 (+0200) Subject: imapc: Update mail size also when istream_opened() hook is called X-Git-Tag: 2.2.35~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=12d10d0098fc61b72563d4e6719334bacc2a1969;p=thirdparty%2Fdovecot%2Fcore.git 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. --- diff --git a/src/lib-storage/index/imapc/imapc-mail-fetch.c b/src/lib-storage/index/imapc/imapc-mail-fetch.c index 5dda047bfe..4d1be86427 100644 --- a/src/lib-storage/index/imapc/imapc-mail-fetch.c +++ b/src/lib-storage/index/imapc/imapc-mail-fetch.c @@ -584,7 +584,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);