" [-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);
if (user == NULL)
user = getenv("USER");
if (!keep_environment)
- deliver_env_clean();
+ deliver_env_clean(!user_auth);
process_euid = geteuid();
if (user_auth)
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,
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);