]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mdbox: mailbox_copy() didn't properly free the save context.
authorTimo Sirainen <tss@iki.fi>
Sat, 16 Feb 2013 11:32:57 +0000 (13:32 +0200)
committerTimo Sirainen <tss@iki.fi>
Sat, 16 Feb 2013 11:32:57 +0000 (13:32 +0200)
src/lib-storage/index/dbox-multi/mdbox-save.c

index c0a3bf13bd0cb0c510506011f2665ebe181a69da..2193c8acecdc37c3e256c58ba9a8f39e0e66ede5 100644 (file)
@@ -425,8 +425,10 @@ int mdbox_copy(struct mail_save_context *_ctx, struct mail *mail)
        memset(&rec, 0, sizeof(rec));
        rec.save_date = ioloop_time;
        if (mdbox_mail_lookup(src_mbox, mail->transaction->view, mail->seq,
-                             &rec.map_uid) < 0)
+                             &rec.map_uid) < 0) {
+               index_save_context_free(_ctx);
                return -1;
+       }
 
        mail_index_lookup_ext(mail->transaction->view, mail->seq,
                              src_mbox->guid_ext_id, &guid_data, &expunged);
@@ -461,5 +463,6 @@ int mdbox_copy(struct mail_save_context *_ctx, struct mail *mail)
 
        if (_ctx->dest_mail != NULL)
                mail_set_seq_saving(_ctx->dest_mail, ctx->ctx.seq);
+       index_save_context_free(_ctx);
        return 0;
 }