]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lmtp: lmtp-proxy - Create proxy recipient struct immediately in lmtp_proxy_rcpt().
authorStephan Bosch <stephan.bosch@open-xchange.com>
Mon, 18 May 2020 21:00:17 +0000 (23:00 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Mon, 17 Jan 2022 11:52:09 +0000 (13:52 +0200)
src/lmtp/lmtp-proxy.c

index cb7c6db608ff97ce88be3ce3c1caeec8803b60dd..1f7e01c5deb4aa55ed7d4a5c300692cd2cacf6e6 100644 (file)
@@ -590,6 +590,12 @@ int lmtp_proxy_rcpt(struct client *client,
        trans = smtp_server_connection_get_transaction(cmd->conn);
        i_assert(trans != NULL); /* MAIL command is synchronous */
 
+       lprcpt = p_new(rcpt->pool, struct lmtp_proxy_recipient, 1);
+       lprcpt->rcpt = lrcpt;
+
+       lrcpt->type = LMTP_RECIPIENT_TYPE_PROXY;
+       lrcpt->backend_context = lprcpt;
+
        i_zero(&input);
        input.module = input.service = "lmtp";
        mail_storage_service_init_settings(storage_service, &input);
@@ -688,14 +694,9 @@ int lmtp_proxy_rcpt(struct client *client,
 
        conn = lmtp_proxy_get_connection(client->proxy, &set);
 
-       lprcpt = p_new(rcpt->pool, struct lmtp_proxy_recipient, 1);
-       lprcpt->rcpt = lrcpt;
        lprcpt->address = smtp_address_clone(rcpt->pool, address);
        lprcpt->conn = conn;
 
-       lrcpt->type = LMTP_RECIPIENT_TYPE_PROXY;
-       lrcpt->backend_context = lprcpt;
-
        /* Copy forward fields returned from passdb */
        fwfields = NULL;
        for (const char *const *ptr = fields; *ptr != NULL; ptr++) {