changeset 2992:3c192eebd919 HEAD

Don't crash if last extension in record needs padding.
author Timo Sirainen <tss@iki.fi>
date Sun, 19 Dec 2004 03:53:30 +0200
parents ca4341dbde8a
children 2c92a14458e6
files src/lib-index/mail-index-sync-ext.c
diffstat 1 files changed, 4 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-sync-ext.c	Sun Dec 19 02:46:10 2004 +0200
+++ b/src/lib-index/mail-index-sync-ext.c	Sun Dec 19 03:53:30 2004 +0200
@@ -245,11 +245,10 @@
 	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);
+		size_t space = old_records_count * new_map->hdr.record_size -
+			new_map->buffer->used;
+		i_assert(space < new_map->hdr.record_size);
+		buffer_append_zero(new_map->buffer, space);
 	}
 
 	new_map->records = buffer_get_modifyable_data(new_map->buffer, NULL);