dovecot-2.2: replicator: Crashfix at deinit

dovecot at dovecot.org dovecot at dovecot.org
Thu Jan 31 21:49:12 EET 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/1bd70d505ef7
changeset: 15703:1bd70d505ef7
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Jan 31 21:01:09 2013 +0200
description:
replicator: Crashfix at deinit

diffstat:

 src/replication/replicator/replicator-brain.c |  6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diffs (30 lines):

diff -r 85e464d088da -r 1bd70d505ef7 src/replication/replicator/replicator-brain.c
--- a/src/replication/replicator/replicator-brain.c	Thu Jan 31 19:58:34 2013 +0200
+++ b/src/replication/replicator/replicator-brain.c	Thu Jan 31 21:01:09 2013 +0200
@@ -20,6 +20,8 @@
 	struct timeout *to;
 
 	ARRAY(struct doveadm_connection *) doveadm_conns;
+
+	unsigned int deinitializing:1;
 };
 
 static void replicator_brain_fill(struct replicator_brain *brain);
@@ -57,6 +59,7 @@
 
 	*_brain = NULL;
 
+	brain->deinitializing = TRUE;
 	array_foreach_modifiable(&brain->doveadm_conns, connp)
 		doveadm_connection_deinit(connp);
 	if (brain->to != NULL)
@@ -97,7 +100,8 @@
 			reply != DOVEADM_REPLY_OK;
 		replicator_queue_push(ctx->brain->queue, ctx->user);
 	}
-	replicator_brain_fill(ctx->brain);
+	if (!ctx->brain->deinitializing)
+		replicator_brain_fill(ctx->brain);
 	i_free(ctx);
 }
 


More information about the dovecot-cvs mailing list