From ff83a9a0b2264ca5a93b7346923e9022db441853 Mon Sep 17 00:00:00 2001 From: Stephan Bosch 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 c8ef877d8..2bf407baa 100644 --- a/src/plugins/imapsieve/imap-sieve-storage.c +++ b/src/plugins/imapsieve/imap-sieve-storage.c @@ -499,7 +499,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;