From: Timo Sirainen Date: Tue, 11 Nov 2008 20:01:51 +0000 (+0200) Subject: virtual mailboxes: Fixed an assert-crash when mailbox was being opened. X-Git-Tag: 1.2.alpha4~98 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4df58367179abb17eafde40a1c47f3adb2dcd1f2;p=thirdparty%2Fdovecot%2Fcore.git virtual mailboxes: Fixed an assert-crash when mailbox was being opened. --HG-- branch : HEAD --- diff --git a/src/plugins/virtual/virtual-sync.c b/src/plugins/virtual/virtual-sync.c index 17654c2a08..7da9ea5637 100644 --- a/src/plugins/virtual/virtual-sync.c +++ b/src/plugins/virtual/virtual-sync.c @@ -974,8 +974,16 @@ static void virtual_sync_backend_map_uids(struct virtual_sync_context *ctx) 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);