From e51a625ac724242c8f321e2131b42669af9b77fd Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@dovecot.fi> Date: Sun, 5 Aug 2018 13:54:06 +0200 Subject: [PATCH] plugins: imapsieve: Fix assert panic occurring when a COPY event is triggered on a virtual mailbox. Occurs when several mails from different backend mailboxes are involved in the COPY event. Fixed by using mail_save_context->>copy_src_mail in mailbox_copy() instead of the mail argument. The latter can point to the backend mailbox for virtual mailboxes, which makes no sense to the imapsieve plugin as it expects only one source mailbox. Panic was: Panic: file imap-sieve-storage.c: line 337 (imap_sieve_add_mailbox_copy_event): assertion failed: (ismt->src_box == NULL || ismt->src_box == src_mail->box) --- src/plugins/imapsieve/imap-sieve-storage.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/imapsieve/imap-sieve-storage.c b/src/plugins/imapsieve/imap-sieve-storage.c index e04cafcef..8dbf0544f 100644 --- a/src/plugins/imapsieve/imap-sieve-storage.c +++ b/src/plugins/imapsieve/imap-sieve-storage.c @@ -491,7 +491,8 @@ imap_sieve_mailbox_copy(struct mail_save_context *ctx, struct mail *mail) imap_sieve_mailbox_debug(t->box, "%s event", (isuser->cur_cmd == IMAP_SIEVE_CMD_COPY ? "COPY" : "MOVE")); - imap_sieve_add_mailbox_copy_event(t, ctx->dest_mail, mail); + imap_sieve_add_mailbox_copy_event(t, ctx->dest_mail, + ctx->copy_src_mail); } return 0; -- GitLab