]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mail_storage_copy(): Don't unreference keywords too many times.
authorTimo Sirainen <tss@iki.fi>
Sun, 18 Oct 2009 19:23:15 +0000 (15:23 -0400)
committerTimo Sirainen <tss@iki.fi>
Sun, 18 Oct 2009 19:23:15 +0000 (15:23 -0400)
--HG--
branch : HEAD

src/lib-storage/mail-copy.c

index 9d94c32e23d0f011f7a4d5c7222cd6af9d0d8f5a..e60901c321ad094960870c8fe0c477060acd389d 100644 (file)
@@ -48,6 +48,12 @@ int mail_storage_copy(struct mail_save_context *ctx, struct mail *mail)
                        break;
        } while (i_stream_read(input) != -1);
 
+       if (ctx->keywords != NULL) {
+               /* keywords gets unreferenced twice, because we call
+                  mailbox_save_cancel/finish */
+               mailbox_keywords_ref(ctx->transaction->box, ctx->keywords);
+       }
+
        if (input->stream_errno != 0) {
                mail_storage_set_critical(ctx->transaction->box->storage,
                                          "copy: i_stream_read() failed: %m");