From: Timo Sirainen Date: Tue, 27 Dec 2022 17:30:01 +0000 (+0200) Subject: fts: Add data stack frames to reduce memory usage when parsing many MIME parts X-Git-Tag: 2.4.0~3202 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff57f2053eb33b3d9ac77212eb10464e27523eb9;p=thirdparty%2Fdovecot%2Fcore.git fts: Add data stack frames to reduce memory usage when parsing many MIME parts --- diff --git a/src/plugins/fts/fts-build-mail.c b/src/plugins/fts/fts-build-mail.c index 8a8e615c4f..d9ca6ccbd8 100644 --- a/src/plugins/fts/fts-build-mail.c +++ b/src/plugins/fts/fts-build-mail.c @@ -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 */ diff --git a/src/plugins/fts/fts-parser.c b/src/plugins/fts/fts-parser.c index c0eac80d25..ccafd7838c 100644 --- a/src/plugins/fts/fts-parser.c +++ b/src/plugins/fts/fts-parser.c @@ -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; }