From 2bc03d11a9771db3440c7a1b041da08a13f941b3 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 20 Jul 2010 14:47:39 +0100 Subject: [PATCH] dsync: Fixed potential crash with remote syncing. --- src/dsync/dsync-brain-msgs-new.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/dsync/dsync-brain-msgs-new.c b/src/dsync/dsync-brain-msgs-new.c index 3ac0d1477a..a518dcddce 100644 --- a/src/dsync/dsync-brain-msgs-new.c +++ b/src/dsync/dsync-brain-msgs-new.c @@ -248,6 +248,8 @@ dsync_brain_msg_sync_finish(struct dsync_brain_msg_iter *iter) { struct dsync_brain_mailbox_sync *sync = iter->sync; + i_assert(sync->brain->state == DSYNC_STATE_SYNC_MSGS); + iter->msgs_sent = TRUE; /* done with all mailboxes from this iter */ @@ -259,6 +261,10 @@ dsync_brain_msg_sync_finish(struct dsync_brain_msg_iter *iter) sync->dest_msg_iter->save_results_left == 0 && dsync_worker_output_flush(sync->dest_worker) > 0 && dsync_worker_output_flush(sync->src_worker) > 0) { + dsync_worker_set_output_callback(sync->src_msg_iter->worker, + NULL, NULL); + dsync_worker_set_output_callback(sync->dest_msg_iter->worker, + NULL, NULL); sync->brain->state++; dsync_brain_sync(sync->brain); } -- 2.47.3