]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lmtp: lmtp-local - Correctly return -1 in lmtp_local_rcpt() upon quota error
authorStephan Bosch <stephan.bosch@open-xchange.com>
Mon, 9 Nov 2020 17:07:15 +0000 (18:07 +0100)
committerStephan Bosch <stephan.bosch@open-xchange.com>
Fri, 26 Sep 2025 01:42:21 +0000 (03:42 +0200)
This not extremely important, but original code was confusing.

src/lmtp/lmtp-local.c

index 128740961fb30bb45d67c552d0878a2601105542..9c42a32a305379ceb5360233eb173abdb5a9850f 100644 (file)
@@ -363,9 +363,7 @@ int lmtp_local_rcpt(struct client *client,
                rcpt, SMTP_SERVER_RECIPIENT_HOOK_APPROVED,
                lmtp_local_rcpt_approved, llrcpt);
 
-       if (client->lmtp_set->lmtp_user_concurrency_limit == SET_UINT_UNLIMITED) {
-               (void)lmtp_local_rcpt_anvil_finish(llrcpt);
-       } else {
+       if (client->lmtp_set->lmtp_user_concurrency_limit != SET_UINT_UNLIMITED) {
                /* NOTE: username may change as the result of the userdb
                   lookup. Look up the new one via service_user. */
                const struct mail_storage_service_input *input =
@@ -378,7 +376,8 @@ int lmtp_local_rcpt(struct client *client,
                        lmtp_local_rcpt_anvil_cb, llrcpt);
                return 0;
        }
-
+       if (!lmtp_local_rcpt_anvil_finish(llrcpt))
+               return -1;
        return 1;
 }