]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts: Add data stack frames to reduce memory usage when parsing many MIME parts
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 27 Dec 2022 17:30:01 +0000 (19:30 +0200)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 11 Jan 2023 22:02:11 +0000 (00:02 +0200)
src/plugins/fts/fts-build-mail.c
src/plugins/fts/fts-parser.c

index 8a8e615c4fea9160e3e5a56b8be3a7723a982056..d9ca6ccbd85c2879e710b77e0b7d8e62131a1f47 100644 (file)
@@ -224,9 +224,11 @@ fts_build_body_begin(struct fts_mail_build_context *ctx,
        parser_context.content_disposition = ctx->content_disposition;
        parser_context.event = event_create(ctx->mail->box->event);
        event_add_category(parser_context.event, &event_category_fts);
-       event_set_append_log_prefix(
-               parser_context.event,
-               t_strdup_printf("fts-%s: ", ctx->update_ctx->backend->name));
+       T_BEGIN {
+               const char *prefix =
+                       t_strdup_printf("fts-%s: ", ctx->update_ctx->backend->name);
+               event_set_append_log_prefix(parser_context.event, prefix);
+       } T_END;
 
        if (fts_parser_init(&parser_context, &ctx->body_parser)) {
                /* extract text using the the returned parser */
index c0eac80d25acc0fd72651e3868bdf340826f20a8..ccafd7838cdd05d30e391e84b29c4cf3d97adbb1 100644 (file)
@@ -34,7 +34,9 @@ bool fts_parser_init(struct fts_parser_context *parser_context,
        }
 
        for (i = 0; i < N_ELEMENTS(parsers); i++) {
-               *parser_r = parsers[i]->try_init(parser_context);
+               T_BEGIN {
+                       *parser_r = parsers[i]->try_init(parser_context);
+               } T_END;
                if (*parser_r != NULL)
                        return TRUE;
        }