]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Add data stack frame when parsing message headers
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 27 Dec 2022 10:12:48 +0000 (05:12 -0500)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 11 Jan 2023 21:50:37 +0000 (23:50 +0200)
This makes sure the data stack memory usage won't grow too much while
parsing a large number of headers.

src/lib-storage/index/imapc/imapc-mail-fetch.c

index 88c0ef0e04be6ac9e54215e1b8ad3b2b6d633c8f..3c4ae4ec69167930bb82083bcb33ac59e887bde7 100644 (file)
@@ -782,8 +782,9 @@ imapc_fetch_header_stream(struct imapc_mail *mail,
        index_mail_parse_header_init(&mail->imail, headers_ctx);
 
        parser = message_parse_header_init(input, NULL, hdr_parser_flags);
-       while ((ret = message_parse_header_next(parser, &hdr)) > 0)
+       while ((ret = message_parse_header_next(parser, &hdr)) > 0) T_BEGIN {
                index_mail_parse_header(NULL, hdr, &mail->imail);
+       } T_END;
        i_assert(ret != 0);
        index_mail_parse_header(NULL, NULL, &mail->imail);
        message_parse_header_deinit(&parser);