dovecot-1.2: virtual mailboxes: Fixed an assert-crash when mailb...

dovecot at dovecot.org dovecot at dovecot.org
Tue Nov 11 22:01:55 EET 2008


details:   http://hg.dovecot.org/dovecot-1.2/rev/2a9d0bfc2c2b
changeset: 8391:2a9d0bfc2c2b
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Nov 11 22:01:51 2008 +0200
description:
virtual mailboxes: Fixed an assert-crash when mailbox was being opened.

diffstat:

1 file changed, 10 insertions(+), 2 deletions(-)
src/plugins/virtual/virtual-sync.c |   12 ++++++++++--

diffs (22 lines):

diff -r db0c70913765 -r 2a9d0bfc2c2b src/plugins/virtual/virtual-sync.c
--- a/src/plugins/virtual/virtual-sync.c	Fri Nov 07 16:29:42 2008 +0200
+++ b/src/plugins/virtual/virtual-sync.c	Tue Nov 11 22:01:51 2008 +0200
@@ -974,8 +974,16 @@ static void virtual_sync_backend_map_uid
 		else {
 			/* exists - update uidmap and flags */
 			uidmap[j++].virtual_uid = vuid;
-			virtual_sync_external_flags(ctx, bbox, vseq,
-						    vrec->real_uid);
+			/* if ctx->retry is set, we're just opening the virtual
+			   mailbox and using a continued search using modseq.
+			   some messages in uidmap may already be expunged, so
+			   we can't go looking at the real messages yet.
+			   after retrying the sync we'll get back here and
+			   really do it. */
+			if (!ctx->retry) {
+				virtual_sync_external_flags(ctx, bbox, vseq,
+							    vrec->real_uid);
+			}
 		}
 	}
 	i_free(vmails);


More information about the dovecot-cvs mailing list