Mercurial > dovecot > original-hg > dovecot-1.2
changeset 9504:fe1f31b4e21e HEAD
mbox: If mbox parsing notices unexpected corruption, don't assert-crash.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 09 Dec 2009 20:06:20 -0500 |
parents | 8d4621094e54 |
children | 5e2206e3c750 |
files | src/lib-storage/index/mbox/mbox-sync.c |
diffstat | 1 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/mbox/mbox-sync.c Wed Dec 09 20:03:33 2009 -0500 +++ b/src/lib-storage/index/mbox/mbox-sync.c Wed Dec 09 20:06:20 2009 -0500 @@ -148,6 +148,9 @@ i_assert(sync_ctx->input->v_offset != mail_ctx->mail.from_offset || sync_ctx->input->eof); + if (istream_raw_mbox_is_corrupted(sync_ctx->input)) + return -1; + mail_ctx->mail.body_size = istream_raw_mbox_get_body_size(sync_ctx->input, mail_ctx->content_length); @@ -1144,13 +1147,12 @@ ret = mbox_sync_partial_seek_next(sync_ctx, uid + 1, &partial, &skipped_mails); - if (ret <= 0) { - if (ret < 0) - return -1; + if (ret <= 0) break; - } } } + if (ret < 0) + return -1; if (istream_raw_mbox_is_eof(sync_ctx->input)) { /* rest of the messages in index don't exist -> expunge them */