dovecot-1.2: Always send LOGIN_DIR environment to login processes.
dovecot at dovecot.org
dovecot at dovecot.org
Tue Jan 13 20:12:42 EET 2009
details: http://hg.dovecot.org/dovecot-1.2/rev/9edf4a6e0cdb
changeset: 8620:9edf4a6e0cdb
user: Timo Sirainen <tss at iki.fi>
date: Tue Jan 13 13:12:21 2009 -0500
description:
Always send LOGIN_DIR environment to login processes.
diffstat:
2 files changed, 5 insertions(+), 22 deletions(-)
src/login-common/main.c | 8 ++++----
src/master/login-process.c | 19 +------------------
diffs (61 lines):
diff -r 9c4f9c47299b -r 9edf4a6e0cdb src/login-common/main.c
--- a/src/login-common/main.c Mon Jan 12 20:35:07 2009 -0500
+++ b/src/login-common/main.c Tue Jan 13 13:12:21 2009 -0500
@@ -264,10 +264,10 @@ static void drop_privileges(void)
/* if we don't chroot, we must chdir */
value = getenv("LOGIN_DIR");
- if (value != NULL) {
- if (chdir(value) < 0)
- i_error("chdir(%s) failed: %m", value);
- }
+ if (value == NULL)
+ i_fatal("LOGIN_DIR environment missing");
+ if (chdir(value) < 0)
+ i_error("chdir(%s) failed: %m", value);
}
/* Initialize SSL proxy so it can read certificate and private
diff -r 9c4f9c47299b -r 9edf4a6e0cdb src/master/login-process.c
--- a/src/master/login-process.c Mon Jan 12 20:35:07 2009 -0500
+++ b/src/master/login-process.c Tue Jan 13 13:12:21 2009 -0500
@@ -617,6 +617,7 @@ static void login_process_init_env(struc
env_put(t_strconcat("TRUSTED_NETWORKS=",
set->login_trusted_networks, NULL));
}
+ env_put(t_strconcat("LOGIN_DIR=", set->login_dir, NULL));
}
static pid_t create_login_process(struct login_group *group)
@@ -713,14 +714,6 @@ static pid_t create_login_process(struct
env_put(t_strdup_printf("LISTEN_FDS=%u", listen_count));
env_put(t_strdup_printf("SSL_LISTEN_FDS=%u", ssl_listen_count));
-
- if (!group->set->login_chroot) {
- /* no chrooting, but still change to the directory */
- if (chdir(group->set->login_dir) < 0) {
- i_fatal("chdir(%s) failed: %m",
- group->set->login_dir);
- }
- }
restrict_process_size(group->set->login_process_size, (unsigned int)-1);
@@ -892,16 +885,6 @@ static int login_process_send_env(struct
}
}
- if (!p->group->set->login_chroot) {
- /* if we're not chrooting, we need to tell login process
- where its base directory is */
- const char *str = t_strdup_printf("LOGIN_DIR=%s\n",
- p->group->set->login_dir);
- len = strlen(str);
- if (o_stream_send(p->output, str, len) != len)
- ret = -1;
- }
-
if (ret == 0 && o_stream_send(p->output, "\n", 1) != 1)
ret = -1;
More information about the dovecot-cvs
mailing list