]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Update mail size also when istream_opened() hook is called
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 15 Mar 2018 10:20:14 +0000 (12:20 +0200)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Fri, 16 Mar 2018 07:19:11 +0000 (09:19 +0200)
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

index 5dda047bfe11ecd92e23c5d7349d829438d7df72..4d1be864273007aaf186aba74885a2b0f8be7b2a 100644 (file)
@@ -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);