From: Marco Bettini Date: Thu, 6 Apr 2023 15:07:15 +0000 (+0000) Subject: virtual: virtual_transaction_commit() - Don't fail when a backend box was removed... X-Git-Tag: 2.4.0~2789 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1fdfda556df5d2877b5d5faa10f186eb5af449ef;p=thirdparty%2Fdovecot%2Fcore.git virtual: virtual_transaction_commit() - Don't fail when a backend box was removed and no changes are pending for it --- diff --git a/src/plugins/virtual/virtual-transaction.c b/src/plugins/virtual/virtual-transaction.c index 4cb582c981..bfe3bfd1e9 100644 --- a/src/plugins/virtual/virtual-transaction.c +++ b/src/plugins/virtual/virtual-transaction.c @@ -56,7 +56,11 @@ int virtual_transaction_commit(struct mailbox_transaction_context *t, struct mailbox_transaction_context *bt; array_foreach_elem(&vt->backend_transactions, bt) { struct mailbox *bbox = bt->box; + unsigned int changes = bt->changes == NULL ? 0 : + array_count(&bt->changes->saved_uids); if (mailbox_transaction_commit(&bt) < 0) { + if (bbox->mailbox_deleted && changes == 0) + continue; ret = -1; virtual_box_copy_error(vt->t.box, bbox); }