Mercurial > dovecot > original-hg > dovecot-1.2
changeset 2905:1e0d71e67315 HEAD
sync_ext_reorder() sometimes added too much data to buffer.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 29 Nov 2004 01:26:19 +0200 |
parents | 642ba9cd3dac |
children | b909bce742bf |
files | src/lib-index/mail-index-sync-update.c |
diffstat | 1 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-index-sync-update.c Mon Nov 29 01:19:53 2004 +0200 +++ b/src/lib-index/mail-index-sync-update.c Mon Nov 29 01:26:19 2004 +0200 @@ -500,14 +500,15 @@ offset += new_map->hdr.record_size; } - if (ext_id == size-1 && ext[ext_id].record_size != old_size && - old_records_count != 0) { + if (new_map->buffer->used != + old_records_count * new_map->hdr.record_size) { /* we didn't fully write the last record */ + i_assert(new_map->buffer->used == + old_records_count * new_map->hdr.record_size - + (ext[ext_id].record_size - old_size)); buffer_append_zero(new_map->buffer, ext[ext_id].record_size - old_size); } - i_assert(new_map->buffer->used == - old_records_count * new_map->hdr.record_size); new_map->records = buffer_get_modifyable_data(new_map->buffer, NULL); new_map->records_count = old_records_count;