From ee04451f4ad4d0a2ff83acdcbcd2701f4dc8a85a 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 6c5e202be..7d9583f0b 100644 --- a/src/plugins/imapsieve/imap-sieve-storage.c +++ b/src/plugins/imapsieve/imap-sieve-storage.c @@ -492,7 +492,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;