From: Timo Sirainen Date: Thu, 29 Jul 2021 09:38:12 +0000 (+0300) Subject: virtual: Don't use data stack when building extension header X-Git-Tag: 2.3.17~216 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5310858bd071f966b65371de64b080929c6ac69f;p=thirdparty%2Fdovecot%2Fcore.git virtual: Don't use data stack when building extension header Some users may have thousands of mailboxes, which grows the data stack unnecessarily large. --- diff --git a/src/plugins/virtual/virtual-sync.c b/src/plugins/virtual/virtual-sync.c index c1b0a4daee..ab321dc3dc 100644 --- a/src/plugins/virtual/virtual-sync.c +++ b/src/plugins/virtual/virtual-sync.c @@ -300,7 +300,7 @@ static void virtual_sync_ext_header_rewrite(struct virtual_sync_context *ctx) ext_hdr.highest_mailbox_id = ctx->mbox->highest_mailbox_id; ext_hdr.search_args_crc32 = ctx->mbox->search_args_crc32; - buf = t_buffer_create(name_pos + 256); + buf = buffer_create_dynamic(default_pool, name_pos + 256); buffer_append(buf, &ext_hdr, sizeof(ext_hdr)); for (i = 0; i < count; i++) { @@ -339,6 +339,7 @@ static void virtual_sync_ext_header_rewrite(struct virtual_sync_context *ctx) } mail_index_update_header_ext(ctx->trans, ctx->mbox->virtual_ext_id, 0, buf->data, name_pos); + buffer_free(&buf); } static void virtual_sync_ext_header_update(struct virtual_sync_context *ctx)