diff src/master/login-process.c @ 8881:774b0e8138bd HEAD

Call closelog() before dup2()ing fds.
author Timo Sirainen <tss@iki.fi>
date Wed, 01 Apr 2009 12:48:17 -0400
parents 1c76e82e0b36
children 933d95978040
line wrap: on
line diff
--- a/src/master/login-process.c	Wed Apr 01 11:42:56 2009 -0400
+++ b/src/master/login-process.c	Wed Apr 01 12:48:17 2009 -0400
@@ -707,6 +707,10 @@
 			dup2_append(&dups, listens[i].fd, cur_fd);
 	}
 
+	/* make sure we don't leak syslog fd. try to do it as late as possible,
+	   but also before dup2()s in case syslog fd is one of them. */
+	closelog();
+
 	if (dup2_array(&dups) < 0)
 		i_fatal("Failed to dup2() fds");
 
@@ -724,10 +728,6 @@
 
 	restrict_process_size(group->set->login_process_size, (unsigned int)-1);
 
-	/* make sure we don't leak syslog fd, but do it last so that
-	   any errors above will be logged */
-	closelog();
-
 	client_process_exec(group->set->login_executable, "");
 	i_fatal_status(FATAL_EXEC, "execv(%s) failed: %m",
 		       group->set->login_executable);