dovecot-2.0: mdbox: Error handling fixes.

dovecot at dovecot.org dovecot at dovecot.org
Thu Jul 1 18:28:19 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/16e0992583e2
changeset: 11672:16e0992583e2
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Jul 01 16:28:15 2010 +0100
description:
mdbox: Error handling fixes.

diffstat:

 src/lib-storage/index/dbox-multi/mdbox-map.c  |  7 +++++--
 src/lib-storage/index/dbox-multi/mdbox-save.c |  2 ++
 2 files changed, 7 insertions(+), 2 deletions(-)

diffs (34 lines):

diff -r 451852aa0200 -r 16e0992583e2 src/lib-storage/index/dbox-multi/mdbox-map.c
--- a/src/lib-storage/index/dbox-multi/mdbox-map.c	Thu Jul 01 15:25:23 2010 +0100
+++ b/src/lib-storage/index/dbox-multi/mdbox-map.c	Thu Jul 01 16:28:15 2010 +0100
@@ -481,13 +481,16 @@
 
 	*_atomic = NULL;
 
-	if (atomic->success) {
+	if (atomic->sync_ctx == NULL) {
+		/* not locked */
+		i_assert(!atomic->locked);
+	} else if (atomic->success) {
 		if (mail_index_sync_commit(&atomic->sync_ctx) < 0) {
 			mail_storage_set_internal_error(MAP_STORAGE(atomic->map));
 			mail_index_reset_error(atomic->map->index);
 			ret = -1;
 		}
-	} else if (atomic->sync_ctx != NULL) {
+	} else {
 		mail_index_sync_rollback(&atomic->sync_ctx);
 	}
 	i_free(atomic);
diff -r 451852aa0200 -r 16e0992583e2 src/lib-storage/index/dbox-multi/mdbox-save.c
--- a/src/lib-storage/index/dbox-multi/mdbox-save.c	Thu Jul 01 15:25:23 2010 +0100
+++ b/src/lib-storage/index/dbox-multi/mdbox-save.c	Thu Jul 01 16:28:15 2010 +0100
@@ -141,6 +141,8 @@
 	if (mdbox_map_append_next(ctx->append_ctx, mail_size, 0,
 				  &ctx->cur_file_append,
 				  &ctx->ctx.dbox_output) < 0) {
+		ctx->cur_file_append = NULL;
+		ctx->ctx.dbox_output = NULL;
 		ctx->ctx.failed = TRUE;
 		return -1;
 	}


More information about the dovecot-cvs mailing list