changeset 5437:2704fc574e70 HEAD

/dev/null was opened too late.
author Timo Sirainen <tss@iki.fi>
date Tue, 27 Mar 2007 23:13:32 +0300
parents bbb7b3d57593
children 97f9bdbe924d
files src/master/main.c
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/master/main.c	Tue Mar 27 22:59:28 2007 +0300
+++ b/src/master/main.c	Tue Mar 27 23:13:32 2007 +0300
@@ -537,14 +537,16 @@
 	return FALSE;
 }
 
-static void open_fds(void)
+static void open_null_fd(void)
 {
-	/* initialize fds. */
 	null_fd = open("/dev/null", O_RDONLY);
 	if (null_fd == -1)
 		i_fatal("Can't open /dev/null: %m");
 	fd_close_on_exec(null_fd, TRUE);
+}
 
+static void open_fds(void)
+{
 	/* make sure all fds between 0..3 are used. */
 	while (null_fd < 4) {
 		null_fd = dup(null_fd);
@@ -833,6 +835,9 @@
 		}
 	}
 
+	/* need to have this open before reading settings */
+	open_null_fd();
+
 	if (getenv("DOVECOT_INETD") != NULL) {
 		/* starting through inetd. */
 		inetd_login_fd = dup(0);