Mercurial > dovecot > core-2.2
changeset 3291:611ae3edc1fe HEAD
Don't assert-crash with 0-byte sized "mboxes".
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 16 Apr 2005 22:31:21 +0300 |
parents | f82f434a9fdc |
children | 6448d35f8349 |
files | src/lib-storage/index/mbox/mbox-sync.c |
diffstat | 1 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/mbox/mbox-sync.c Tue Apr 12 14:29:48 2005 +0300 +++ b/src/lib-storage/index/mbox/mbox-sync.c Sat Apr 16 22:31:21 2005 +0300 @@ -1221,8 +1221,19 @@ return -1; } - i_assert(sync_ctx->base_uid_validity != 0); - if (sync_ctx->base_uid_validity != sync_ctx->hdr->uid_validity) { + /* only reason not to have UID validity at this point is if the file + is entirely empty. In that case just make up a new one if needed. */ + i_assert(sync_ctx->base_uid_validity != 0 || st->st_size == 0); + + if (sync_ctx->base_uid_validity != sync_ctx->hdr->uid_validity || + sync_ctx->base_uid_validity == 0) { + if (sync_ctx->base_uid_validity == 0) { + sync_ctx->base_uid_validity = + sync_ctx->hdr->uid_validity != 0 ? + sync_ctx->hdr->uid_validity : + (unsigned int)ioloop_time; + } + mail_index_update_header(sync_ctx->t, offsetof(struct mail_index_header, uid_validity), &sync_ctx->base_uid_validity,