From: sergey.kitov Date: Wed, 12 Apr 2023 09:06:52 +0000 (+0300) Subject: lib-storage: Rollback save transaction when transaction commit fails. X-Git-Tag: 2.3.21~60 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7bb46f7e89e028a9ecac149ca1d95c87810d28ff;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Rollback save transaction when transaction commit fails. --- diff --git a/src/lib-storage/index/index-transaction.c b/src/lib-storage/index/index-transaction.c index edd6c3f4bb..e3138b6908 100644 --- a/src/lib-storage/index/index-transaction.c +++ b/src/lib-storage/index/index-transaction.c @@ -76,9 +76,12 @@ index_transaction_index_commit(struct mail_index_transaction *index_trans, } } - if (t->save_ctx != NULL) { + if (t->save_ctx == NULL) { + } else if (ret >= 0) { i_assert(t->save_ctx->dest_mail == NULL); t->box->v.transaction_save_commit_post(t->save_ctx, result_r); + } else { + t->box->v.transaction_save_rollback(t->save_ctx); } if (pvt_sync_ctx != NULL) {