[dovecot-cvs] dovecot/src/lib-index mail-index-sync-update.c, 1.60, 1.61

cras at dovecot.org cras at dovecot.org
Mon Nov 29 01:26:21 EET 2004


Update of /var/lib/cvs/dovecot/src/lib-index
In directory talvi:/tmp/cvs-serv8596/lib-index

Modified Files:
	mail-index-sync-update.c 
Log Message:
sync_ext_reorder() sometimes added too much data to buffer.



Index: mail-index-sync-update.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-index/mail-index-sync-update.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- mail-index-sync-update.c	28 Nov 2004 23:19:53 -0000	1.60
+++ mail-index-sync-update.c	28 Nov 2004 23:26:19 -0000	1.61
@@ -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;



More information about the dovecot-cvs mailing list