From: Timo Sirainen Date: Thu, 9 Feb 2012 18:37:24 +0000 (+0200) Subject: dbox: If saving is aborted, don't add a broken record about it to index. X-Git-Tag: 2.1.rc6~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9047d770bfbb93ab6af5363dedb2d01363877243;p=thirdparty%2Fdovecot%2Fcore.git dbox: If saving is aborted, don't add a broken record about it to index. --- diff --git a/src/lib-storage/index/dbox-multi/mdbox-save.c b/src/lib-storage/index/dbox-multi/mdbox-save.c index ce27393344..13e7aef1cc 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-save.c +++ b/src/lib-storage/index/dbox-multi/mdbox-save.c @@ -218,6 +218,7 @@ static int mdbox_save_finish_write(struct mail_save_context *_ctx) i_stream_unref(&ctx->ctx.input); if (ctx->ctx.failed) { + mail_index_expunge(ctx->ctx.trans, ctx->ctx.seq); mdbox_map_append_abort(ctx->append_ctx); array_delete(&ctx->mails, array_count(&ctx->mails) - 1, 1); return -1; diff --git a/src/lib-storage/index/dbox-single/sdbox-save.c b/src/lib-storage/index/dbox-single/sdbox-save.c index c5e1417bb4..e6883f497a 100644 --- a/src/lib-storage/index/dbox-single/sdbox-save.c +++ b/src/lib-storage/index/dbox-single/sdbox-save.c @@ -184,9 +184,10 @@ static int dbox_save_finish_write(struct mail_save_context *_ctx) ctx->ctx.failed = TRUE; } T_END; - if (ctx->ctx.failed) + if (ctx->ctx.failed) { + mail_index_expunge(ctx->ctx.trans, ctx->ctx.seq); dbox_file_append_rollback(&ctx->append_ctx); - else { + } else { dbox_file_append_checkpoint(ctx->append_ctx); if (dbox_file_append_commit(&ctx->append_ctx) < 0) ctx->ctx.failed = TRUE;