dovecot-1.2: master: When creating login processes, don't close ...
dovecot at dovecot.org
dovecot at dovecot.org
Thu Nov 5 19:25:49 EET 2009
details: http://hg.dovecot.org/dovecot-1.2/rev/19aee456cec3
changeset: 9465:19aee456cec3
user: Timo Sirainen <tss at iki.fi>
date: Thu Nov 05 12:25:43 2009 -0500
description:
master: When creating login processes, don't close any fds after dup2()s.
diffstat:
1 file changed, 4 insertions(+), 4 deletions(-)
src/master/login-process.c | 8 ++++----
diffs (36 lines):
diff -r 939edf3ed09b -r 19aee456cec3 src/master/login-process.c
--- a/src/master/login-process.c Mon Nov 02 17:54:17 2009 -0500
+++ b/src/master/login-process.c Thu Nov 05 12:25:43 2009 -0500
@@ -648,6 +648,8 @@ static pid_t create_login_process(struct
i_error("socketpair() failed: %m");
return -1;
}
+ fd_close_on_exec(fd[0], TRUE);
+ fd_close_on_exec(fd[1], TRUE);
max_log_lines_per_sec =
group->set->login_process_per_connection ? 10 : 0;
@@ -675,7 +677,6 @@ static pid_t create_login_process(struct
log_set_pid(log, pid);
net_set_nonblock(fd[0], TRUE);
- fd_close_on_exec(fd[0], TRUE);
(void)login_process_new(group, pid, fd[0], FALSE);
(void)close(fd[1]);
(void)close(log_fd);
@@ -715,13 +716,12 @@ static pid_t create_login_process(struct
if (dup2_array(&dups) < 0)
i_fatal("Failed to dup2() fds");
+ /* NOTE: don't close any fds below here. dup2_array() may have already
+ assigned other fds to them. */
/* don't close any of these */
for (tmp_fd = 0; tmp_fd < cur_fd; tmp_fd++)
fd_close_on_exec(tmp_fd, FALSE);
-
- (void)close(fd[0]);
- (void)close(fd[1]);
login_process_init_env(group, getpid());
More information about the dovecot-cvs
mailing list