From: Timo Sirainen Date: Thu, 2 Dec 2010 04:37:38 +0000 (+0000) Subject: lib-index: Added a missing sanity check for expunge-guid record's uid. X-Git-Tag: 2.0.8~24 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e49769b64208ee00de00a0061cb29a1b555144b0;p=thirdparty%2Fdovecot%2Fcore.git lib-index: Added a missing sanity check for expunge-guid record's uid. This fixes a non-self healing assert-crash. --- diff --git a/src/lib-index/mail-index-sync-update.c b/src/lib-index/mail-index-sync-update.c index 30da5935ef..89a2339ba8 100644 --- a/src/lib-index/mail-index-sync-update.c +++ b/src/lib-index/mail-index-sync-update.c @@ -558,8 +558,15 @@ int mail_index_sync_record(struct mail_index_sync_map_ctx *ctx, break; } end = CONST_PTR_OFFSET(data, hdr->size); - for (; rec != end; rec++) + for (; rec != end; rec++) { + if (rec->uid == 0) { + mail_index_sync_set_corrupted(ctx, + "Expunge-guid for invalid uid=%u", + rec->uid); + break; + } sync_expunge(ctx, rec->uid, rec->uid); + } break; } case MAIL_TRANSACTION_FLAG_UPDATE: {