Mercurial > dovecot > core-2.2
changeset 22353:be6d20b5644f
virtual: If virtual_uid is not assigned skip it
We cannot lookup mails with uid 0, so if we see
that mail has virtual uid 0, do not attempt to look it
up from index, but skip it.
Fixes Panic: file mail-index-map.c: line 549 (mail_index_map_lookup_seq_range): assertion failed: (first_uid > 0)
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Thu, 06 Jul 2017 12:40:33 +0300 |
parents | d0c01cdc09c3 |
children | b9a2a6135419 |
files | src/plugins/virtual/virtual-sync.c |
diffstat | 1 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/virtual/virtual-sync.c Wed Jul 05 15:20:32 2017 +0300 +++ b/src/plugins/virtual/virtual-sync.c Thu Jul 06 12:40:33 2017 +0300 @@ -566,6 +566,10 @@ for (; uid <= uids[i].seq2; uid++, src++) { i_assert(src < rec_count); i_assert(uidmap[src].real_uid == uid); + if (uidmap[src].virtual_uid == 0) { + /* has not been assigned yet */ + continue; + } if (mail_index_lookup_seq(ctx->sync_view, uidmap[src].virtual_uid, &vseq)) @@ -1039,6 +1043,10 @@ uidmap = array_idx(&bbox->uids, 0); for (; idx1 <= idx2; idx1++) { vuid = uidmap[idx1].virtual_uid; + if (vuid == 0) { + /* has not been even assigned yet */ + continue; + } if (!mail_index_lookup_seq(ctx->sync_view, vuid, &vseq)) { /* expunged by another session,