From: Timo Sirainen Date: Wed, 1 Jun 2022 08:04:09 +0000 (+0300) Subject: doveadm: Add doveadm_cmd_context.pool X-Git-Tag: 2.4.0~4025 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=46a622dff3cffe4d3e45bc74d483d72b1d111b3a;p=thirdparty%2Fdovecot%2Fcore.git doveadm: Add doveadm_cmd_context.pool --- diff --git a/src/doveadm/client-connection-http.c b/src/doveadm/client-connection-http.c index 572e3b938d..31e3731008 100644 --- a/src/doveadm/client-connection-http.c +++ b/src/doveadm/client-connection-http.c @@ -195,6 +195,7 @@ doveadm_http_server_command_execute(struct client_request_http *req) prev_ioloop = current_ioloop; i_zero(&cctx); + cctx.pool = pool_alloconly_create("doveadm cmd", 256); cctx.conn_type = conn->conn.type; cctx.input = req->input; cctx.output = req->output; @@ -255,6 +256,7 @@ doveadm_http_server_command_execute(struct client_request_http *req) doveadm_http_server_json_success(req, is); } i_stream_unref(&is); + pool_unref(&cctx.pool); } static int diff --git a/src/doveadm/client-connection-tcp.c b/src/doveadm/client-connection-tcp.c index 06e759cb82..3763f0ae8c 100644 --- a/src/doveadm/client-connection-tcp.c +++ b/src/doveadm/client-connection-tcp.c @@ -330,6 +330,7 @@ static bool client_handle_command(struct client_connection_tcp *conn, struct doveadm_cmd_context cctx; i_zero(&cctx); + cctx.pool = pool_alloconly_create("doveadm cmd", 256); cctx.conn_type = conn->conn.type; cctx.input = conn->input; cctx.output = conn->output; @@ -337,7 +338,9 @@ static bool client_handle_command(struct client_connection_tcp *conn, cctx.remote_ip = conn->conn.remote_ip; cctx.local_port = conn->conn.local_port; cctx.remote_port = conn->conn.remote_port; - return client_handle_command_ctx(conn, &cctx, args); + bool ret = client_handle_command_ctx(conn, &cctx, args); + pool_unref(&cctx.pool); + return ret; } static int diff --git a/src/doveadm/doveadm-cmd.h b/src/doveadm/doveadm-cmd.h index d29ebd9c92..8bbb55c723 100644 --- a/src/doveadm/doveadm-cmd.h +++ b/src/doveadm/doveadm-cmd.h @@ -71,6 +71,7 @@ struct doveadm_cmd_ver2 { struct doveadm_cmd_context { const struct doveadm_cmd_ver2 *cmd; /* for help */ + pool_t pool; int argc; const struct doveadm_cmd_param *argv; diff --git a/src/doveadm/doveadm.c b/src/doveadm/doveadm.c index 8b30762b83..3aa7ab65e7 100644 --- a/src/doveadm/doveadm.c +++ b/src/doveadm/doveadm.c @@ -265,6 +265,7 @@ int main(int argc, char *argv[]) int c; i_zero(&cctx); + cctx.pool = pool_alloconly_create("doveadm cmd", 256); cctx.conn_type = DOVEADM_CONNECTION_TYPE_CLI; i_set_failure_exit_callback(failure_exit_callback); @@ -371,6 +372,7 @@ int main(int argc, char *argv[]) } if (cctx.referral != NULL) i_fatal("Command requested referral: %s", cctx.referral); + pool_unref(&cctx.pool); if (!quick_init) { doveadm_mail_deinit();