From: Timo Sirainen Date: Thu, 23 Apr 2020 08:34:22 +0000 (+0300) Subject: lib-mail: message-parser - Change message_part_append() to do all work internally X-Git-Tag: 2.3.11.2~55 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=41de7289f1558389b6aaca8804f37661145df0f0;p=thirdparty%2Fdovecot%2Fcore.git lib-mail: message-parser - Change message_part_append() to do all work internally --- diff --git a/src/lib-mail/message-parser.c b/src/lib-mail/message-parser.c index 9a98cc83a3..0edd4d267c 100644 --- a/src/lib-mail/message-parser.c +++ b/src/lib-mail/message-parser.c @@ -122,16 +122,17 @@ int message_parser_read_more(struct message_parser_ctx *ctx, return 1; } -static struct message_part * -message_part_append(pool_t pool, struct message_part *parent) +static void +message_part_append(struct message_parser_ctx *ctx) { + struct message_part *parent = ctx->part; struct message_part *p, *part, **list; i_assert(parent != NULL); i_assert((parent->flags & (MESSAGE_PART_FLAG_MULTIPART | MESSAGE_PART_FLAG_MESSAGE_RFC822)) != 0); - part = p_new(pool, struct message_part, 1); + part = p_new(ctx->part_pool, struct message_part, 1); part->parent = parent; for (p = parent; p != NULL; p = p->parent) p->children_count++; @@ -147,7 +148,7 @@ message_part_append(pool_t pool, struct message_part *parent) list = &(*list)->next; *list = part; - return part; + ctx->part = part; } static void message_part_finish(struct message_parser_ctx *ctx) @@ -175,7 +176,7 @@ static void parse_next_body_multipart_init(struct message_parser_ctx *ctx) static int parse_next_body_message_rfc822_init(struct message_parser_ctx *ctx, struct message_block *block_r) { - ctx->part = message_part_append(ctx->part_pool, ctx->part); + message_part_append(ctx); return parse_next_header_init(ctx, block_r); } @@ -225,7 +226,7 @@ boundary_line_find(struct message_parser_ctx *ctx, static int parse_next_mime_header_init(struct message_parser_ctx *ctx, struct message_block *block_r) { - ctx->part = message_part_append(ctx->part_pool, ctx->part); + message_part_append(ctx); ctx->part->flags |= MESSAGE_PART_FLAG_IS_MIME; return parse_next_header_init(ctx, block_r);