]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lmtp: Clarify lmtp_user_concurrency_limit value of unlimited
authorKarl Fleischmann <karl.fleischmann@open-xchange.com>
Wed, 12 Mar 2025 08:59:18 +0000 (09:59 +0100)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Thu, 13 Mar 2025 08:23:40 +0000 (08:23 +0000)
Disallow setting this setting to 0. Make the relevant checks against
"unlimited" instead.

src/lmtp/lmtp-commands.c
src/lmtp/lmtp-local.c
src/lmtp/lmtp-settings.c

index 377dd94569f0df7790d54592ff99c0565eeabee8..da4eb19f1a44df07212f50296c6e1c17282aeff4 100644 (file)
@@ -35,7 +35,7 @@ int client_default_cmd_mail(struct client *client,
                            struct smtp_server_cmd_ctx *cmd ATTR_UNUSED,
                            struct smtp_server_cmd_mail *data ATTR_UNUSED)
 {
-       if (client->lmtp_set->lmtp_user_concurrency_limit > 0) {
+       if (client->lmtp_set->lmtp_user_concurrency_limit < SET_UINT_UNLIMITED) {
                /* Connect to anvil before dropping privileges */
                lmtp_anvil_init();
        }
index 6f386477e94c587efa93bc4d6c4d358aefc57dc0..9fe04559ed0046310df242118cc41f0fea758dce 100644 (file)
@@ -359,7 +359,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 == 0) {
+       if (client->lmtp_set->lmtp_user_concurrency_limit == SET_UINT_UNLIMITED) {
                (void)lmtp_local_rcpt_anvil_finish(llrcpt);
        } else {
                /* NOTE: username may change as the result of the userdb
index db4db1ac57fa82acda9d26ec01b1b778a5960f05..0ecbd0e3ac36e6c68a2714db8866d03785501666 100644 (file)
@@ -208,6 +208,13 @@ static bool lmtp_settings_check(void *_set, pool_t pool ATTR_UNUSED,
                                           set->lmtp_hdr_delivery_address);
                return FALSE;
        }
+
+       if (set->lmtp_user_concurrency_limit == 0) {
+               *error_r = "lmtp_user_concurrency_limit must not be 0 "
+                          "(did you mean \"unlimited\"?)";
+               return FALSE;
+       }
+
        return TRUE;
 }
 /* </settings checks> */