File: 0001-lda-Fix-using-USER-environment-if-d-hasn-t-been-spec.patch

package info (click to toggle)
dovecot 1%3A2.4.1%2Bdfsg1-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 46,392 kB
  • sloc: ansic: 596,205; makefile: 7,826; sh: 6,141; cpp: 1,866; perl: 487; yacc: 412; lex: 320; python: 299; xml: 232
file content (38 lines) | stat: -rw-r--r-- 1,322 bytes parent folder | download | duplicates (3)
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;