Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7013:7966e025ac0f HEAD
maildir_uidlist_set_ext() assert-crashed when trying to set it to expunged
message or so new message that we hadn't yet refreshed uidlist since seeing
it.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 21 Dec 2007 21:05:14 +0200 |
parents | 2f25031c4a84 |
children | 6835ac721609 |
files | src/lib-storage/index/maildir/maildir-uidlist.c |
diffstat | 1 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/maildir/maildir-uidlist.c Fri Dec 21 19:46:24 2007 +0200 +++ b/src/lib-storage/index/maildir/maildir-uidlist.c Fri Dec 21 21:05:14 2007 +0200 @@ -837,7 +837,16 @@ unsigned int len; rec = maildir_uidlist_lookup_rec(uidlist, uid, &idx); - i_assert(rec != NULL); + if (rec == NULL) { + /* maybe it's a new message */ + if (maildir_uidlist_refresh(uidlist) < 0) + return; + rec = maildir_uidlist_lookup_rec(uidlist, uid, &idx); + if (rec == NULL) { + /* message is already expunged, ignore */ + return; + } + } buf = buffer_create_dynamic(pool_datastack_create(), 128);