1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
From 0d490d6453b4779bc711f1b998e6d09ae2aab8a8 Mon Sep 17 00:00:00 2001
From: Timo Sirainen <timo.sirainen@open-xchange.com>
Date: Mon, 26 May 2025 09:37:35 +0300
Subject: [PATCH] lda: Fix using USER environment if -d hasn't been specified
This became broken at some point.
---
src/lda/main.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
Index: dovecot/src/lda/main.c
===================================================================
--- dovecot.orig/src/lda/main.c
+++ dovecot/src/lda/main.c
@@ -453,9 +453,6 @@ int main(int argc, char *argv[])
i_fatal_status(EX_USAGE, "Unknown argument: %s", argv[optind]);
}
- if (master_service_settings_read_simple(master_service, &error) < 0)
- i_fatal("%s", error);
-
process_euid = geteuid();
if ((service_flags & MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP) != 0)
;
@@ -485,6 +482,13 @@ int main(int argc, char *argv[])
i_fatal_status(EX_USAGE,
"destination user parameter (-d user) not given");
}
+ struct master_service_settings_input set_input = {
+ .preserve_user = TRUE,
+ };
+ struct master_service_settings_output set_output;
+ if (master_service_settings_read(master_service, &set_input,
+ &set_output, &error) < 0)
+ i_fatal("%s", error);
master_service_init_finish(master_service);
dinput.mail_from = mail_from;
|