]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Minor memory leak fixes at deinit.
authorTimo Sirainen <tss@iki.fi>
Mon, 5 Aug 2013 19:13:28 +0000 (22:13 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 5 Aug 2013 19:13:28 +0000 (22:13 +0300)
src/doveadm/doveadm-mail-mailbox-status.c
src/doveadm/doveadm-mail-mailbox.c

index 56dd92c6d1b3351d299ce925ec2369fdf4afede5..2b4c5212448111940f218146062f0dfb6d616f16 100644 (file)
@@ -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;
index e553544eb8937dbe0fcf1061de32f96fb80c4cf1..2cae70bc58c2b3bdf6c2477cae314c23810311f7 100644 (file)
@@ -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";