dovecot-1.2: deliver: Don't preserve HOME environment when using...

dovecot at dovecot.org dovecot at dovecot.org
Sat Jan 3 17:33:30 EET 2009


details:   http://hg.dovecot.org/dovecot-1.2/rev/db0d0d7385fd
changeset: 8587:db0d0d7385fd
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Jan 03 10:33:20 2009 -0500
description:
deliver: Don't preserve HOME environment when using -d parameter.

diffstat:

3 files changed, 5 insertions(+), 5 deletions(-)
src/deliver/deliver.c     |    6 +++---
src/deliver/deliver.h     |    2 +-
src/deliver/smtp-client.c |    2 +-

diffs (53 lines):

diff -r 71cc9f3e3f2d -r db0d0d7385fd src/deliver/deliver.c
--- a/src/deliver/deliver.c	Wed Dec 31 01:49:50 2008 +0200
+++ b/src/deliver/deliver.c	Sat Jan 03 10:33:20 2009 -0500
@@ -719,14 +719,14 @@ static void print_help(void)
 "               [-f <envelope sender>] [-m <mailbox>] [-n] [-s] [-e] [-k]\n");
 }
 
-void deliver_env_clean(void)
+void deliver_env_clean(bool preserve_home)
 {
 	const char *tz, *home;
 
 	tz = getenv("TZ");
 	if (tz != NULL)
 		tz = t_strconcat("TZ=", tz, NULL);
-	home = getenv("HOME");
+	home = preserve_home ? getenv("HOME") : NULL;
 	if (home != NULL)
 		home = t_strconcat("HOME=", home, NULL);
 
@@ -920,7 +920,7 @@ int main(int argc, char *argv[])
 	if (user == NULL)
 		user = getenv("USER");
 	if (!keep_environment)
-		deliver_env_clean();
+		deliver_env_clean(!user_auth);
 
 	process_euid = geteuid();
 	if (user_auth)
diff -r 71cc9f3e3f2d -r db0d0d7385fd src/deliver/deliver.h
--- a/src/deliver/deliver.h	Wed Dec 31 01:49:50 2008 +0200
+++ b/src/deliver/deliver.h	Sat Jan 03 10:33:20 2009 -0500
@@ -34,7 +34,7 @@ typedef int deliver_mail_func_t(struct m
 
 extern deliver_mail_func_t *deliver_mail;
 
-void deliver_env_clean(void);
+void deliver_env_clean(bool preserve_home);
 
 /* Save a mail into given mailbox with given flags and keywords. */
 int deliver_save(struct mail_namespace *namespaces,
diff -r 71cc9f3e3f2d -r db0d0d7385fd src/deliver/smtp-client.c
--- a/src/deliver/smtp-client.c	Wed Dec 31 01:49:50 2008 +0200
+++ b/src/deliver/smtp-client.c	Sat Jan 03 10:33:20 2009 -0500
@@ -46,7 +46,7 @@ smtp_client_run_sendmail(const char *des
 	if (dup2(fd, STDIN_FILENO) < 0)
 		i_fatal("dup2() failed: %m");
 
-	deliver_env_clean();
+	deliver_env_clean(TRUE);
 
 	(void)execv(sendmail_path, (void *)argv);
 	i_fatal("execv(%s) failed: %m", sendmail_path);


More information about the dovecot-cvs mailing list