From: Timo Sirainen Date: Mon, 5 Aug 2013 19:13:28 +0000 (+0300) Subject: doveadm: Minor memory leak fixes at deinit. X-Git-Tag: 2.2.5~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=57434d8add2f13b6d6dbd39b941e9e80c64be74e;p=thirdparty%2Fdovecot%2Fcore.git doveadm: Minor memory leak fixes at deinit. --- diff --git a/src/doveadm/doveadm-mail-mailbox-status.c b/src/doveadm/doveadm-mail-mailbox-status.c index 56dd92c6d1..2b4c521244 100644 --- a/src/doveadm/doveadm-mail-mailbox-status.c +++ b/src/doveadm/doveadm-mail-mailbox-status.c @@ -4,6 +4,7 @@ #include "str.h" #include "mail-namespace.h" #include "mail-storage.h" +#include "mail-search.h" #include "doveadm-print.h" #include "doveadm-mail.h" #include "doveadm-mailbox-list-iter.h" @@ -207,6 +208,13 @@ static void cmd_mailbox_status_init(struct doveadm_mail_cmd_context *_ctx, doveadm_print_header_simple("guid"); } +static void cmd_mailbox_status_deinit(struct doveadm_mail_cmd_context *_ctx) +{ + struct status_cmd_context *ctx = (struct status_cmd_context *)_ctx; + + mail_search_args_unref(&ctx->search_args); +} + static bool cmd_mailbox_status_parse_arg(struct doveadm_mail_cmd_context *_ctx, int c) { @@ -230,6 +238,7 @@ static struct doveadm_mail_cmd_context *cmd_mailbox_status_alloc(void) ctx->ctx.getopt_args = "t"; ctx->ctx.v.parse_arg = cmd_mailbox_status_parse_arg; ctx->ctx.v.init = cmd_mailbox_status_init; + ctx->ctx.v.deinit = cmd_mailbox_status_deinit; ctx->ctx.v.run = cmd_mailbox_status_run; doveadm_print_init(DOVEADM_PRINT_TYPE_FLOW); return &ctx->ctx; diff --git a/src/doveadm/doveadm-mail-mailbox.c b/src/doveadm/doveadm-mail-mailbox.c index e553544eb8..2cae70bc58 100644 --- a/src/doveadm/doveadm-mail-mailbox.c +++ b/src/doveadm/doveadm-mail-mailbox.c @@ -172,12 +172,20 @@ static void cmd_mailbox_list_init(struct doveadm_mail_cmd_context *_ctx, ctx->search_args = doveadm_mail_mailbox_search_args_build(args); } +static void cmd_mailbox_list_deinit(struct doveadm_mail_cmd_context *_ctx) +{ + struct list_cmd_context *ctx = (struct list_cmd_context *)_ctx; + + mail_search_args_unref(&ctx->search_args); +} + static struct doveadm_mail_cmd_context *cmd_mailbox_list_alloc(void) { struct list_cmd_context *ctx; ctx = doveadm_mailbox_cmd_alloc(struct list_cmd_context); ctx->ctx.ctx.v.init = cmd_mailbox_list_init; + ctx->ctx.ctx.v.deinit = cmd_mailbox_list_deinit; ctx->ctx.ctx.v.run = cmd_mailbox_list_run; ctx->ctx.ctx.v.parse_arg = cmd_mailbox_list_parse_arg; ctx->ctx.ctx.getopt_args = "78s";