changeset 5991:5dacddf4a88a HEAD

When resetting extensions, the ext intro's reset_id must be the old one.
author Timo Sirainen <tss@iki.fi>
date Sat, 14 Jul 2007 23:15:54 +0300
parents 14a0630a4fa9
children ac382879b116
files src/lib-index/mail-transaction-log-append.c
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-transaction-log-append.c	Sat Jul 14 22:12:30 2007 +0300
+++ b/src/lib-index/mail-transaction-log-append.c	Sat Jul 14 23:15:54 2007 +0300
@@ -315,11 +315,14 @@
 		     array_is_created(&update[ext_id])) ||
 		    ext_reset.new_reset_id != 0 ||
 		    (ext_id < hdrs_count && hdrs[ext_id] != NULL)) {
-			reset_id = ext_id < reset_id_count ?
+			reset_id = ext_id < reset_id_count &&
+				ext_reset.new_reset_id == 0 ?
 				reset_ids[ext_id] : 0;
 			log_append_ext_intro(ctx, ext_id, reset_id);
 		}
 		if (ext_reset.new_reset_id != 0) {
+			i_assert(ext_id < reset_id_count &&
+				 ext_reset.new_reset_id == reset_ids[ext_id]);
 			log_append_buffer(ctx, buf, NULL,
 					  MAIL_TRANSACTION_EXT_RESET);
 		}