summaryrefslogtreecommitdiffstats
path: root/extra/dovecot/dovecot-1.1.11-bdc5391e52df.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/dovecot/dovecot-1.1.11-bdc5391e52df.patch')
-rw-r--r--extra/dovecot/dovecot-1.1.11-bdc5391e52df.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/extra/dovecot/dovecot-1.1.11-bdc5391e52df.patch b/extra/dovecot/dovecot-1.1.11-bdc5391e52df.patch
new file mode 100644
index 000000000..ac1dc2598
--- /dev/null
+++ b/extra/dovecot/dovecot-1.1.11-bdc5391e52df.patch
@@ -0,0 +1,49 @@
+
+# HG changeset patch
+# User Timo Sirainen <tss@iki.fi>
+# Date 1234226629 18000
+# Node ID bdc5391e52dfe4590e9e291eba2603ed87caef57
+# Parent 4ddf36b9ee8182f10d8d69af6577b677cda282a0
+master: Don't crash if auth process dies too early.
+
+--- a/src/master/auth-process.c Thu Feb 05 18:29:06 2009 -0500
++++ b/src/master/auth-process.c Mon Feb 09 19:43:49 2009 -0500
+@@ -353,7 +353,7 @@ static void auth_process_destroy(struct
+
+ if (!p->initialized && io_loop_is_running(ioloop) && !p->external) {
+ /* log the process exit and kill ourself */
+- child_processes_deinit();
++ child_processes_flush();
+ log_deinit();
+ i_fatal("Auth process died too early - shutting down");
+ }
+--- a/src/master/child-process.c Thu Feb 05 18:29:06 2009 -0500
++++ b/src/master/child-process.c Mon Feb 09 19:43:49 2009 -0500
+@@ -219,10 +219,15 @@ void child_processes_init(void)
+ lib_signals_set_handler(SIGCHLD, TRUE, sigchld_handler, NULL);
+ }
+
+-void child_processes_deinit(void)
++void child_processes_flush(void)
+ {
+ /* make sure we log if child processes died unexpectedly */
+ sigchld_handler(SIGCHLD, NULL);
++}
++
++void child_processes_deinit(void)
++{
++ child_processes_flush();
+ lib_signals_unset_handler(SIGCHLD, sigchld_handler, NULL);
+ hash_destroy(&processes);
+ }
+--- a/src/master/child-process.h Thu Feb 05 18:29:06 2009 -0500
++++ b/src/master/child-process.h Mon Feb 09 19:43:49 2009 -0500
+@@ -40,6 +40,7 @@ void child_process_set_destroy_callback(
+ child_process_destroy_callback_t *cb);
+
+ void child_processes_init(void);
++void child_processes_flush(void);
+ void child_processes_deinit(void);
+
+ #endif
+