]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Add asserts to make sure mailbox_header_lookup_ctx is used correctly.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 10 Nov 2016 11:19:05 +0000 (13:19 +0200)
committerGitLab <gitlab@git.dovecot.net>
Fri, 18 Nov 2016 11:42:01 +0000 (13:42 +0200)
src/lib-storage/index/index-mail-headers.c
src/lib-storage/mail-storage.c
src/lib-storage/mail.c

index b442139a6727225b267d39e206366bb83aff30fb..e20fa8c4e46dbdc47d6425fcd9d65ff7e3b61692 100644 (file)
@@ -862,9 +862,6 @@ int index_mail_get_header_stream(struct mail *_mail,
        struct istream *input;
        string_t *dest;
 
-       i_assert(headers->count > 0);
-       i_assert(headers->box == _mail->box);
-
        if (mail->data.save_bodystructure_header) {
                /* we have to parse the header. */
                const char *reason =
index 87cb8b75ff9b1fa07dd28b6c68f91ecbdfde4079..e7e790f8ea5b8ba98599c28d39dd8ee74500e1da 100644 (file)
@@ -1803,6 +1803,8 @@ mailbox_search_init(struct mailbox_transaction_context *t,
                    enum mail_fetch_field wanted_fields,
                    struct mailbox_header_lookup_ctx *wanted_headers)
 {
+       i_assert(wanted_headers == NULL || wanted_headers->box == t->box);
+
        mail_search_args_ref(args);
        if (!args->simplified)
                mail_search_args_simplify(args);
index 903feade58b6377e941b35a92ade9681894f6334..f92eb4f959e8ff96926e5bfc53bbe1cd7ce39c4d 100644 (file)
@@ -19,6 +19,8 @@ struct mail *mail_alloc(struct mailbox_transaction_context *t,
 {
        struct mail *mail;
 
+       i_assert(wanted_headers == NULL || wanted_headers->box == t->box);
+
        T_BEGIN {
                mail = t->box->v.mail_alloc(t, wanted_fields, wanted_headers);
                hook_mail_allocated(mail);
@@ -73,6 +75,8 @@ void mail_add_temp_wanted_fields(struct mail *mail,
 {
        struct mail_private *p = (struct mail_private *)mail;
 
+       i_assert(headers == NULL || headers->box == mail->box);
+
        p->v.add_temp_wanted_fields(mail, fields, headers);
 }
 
@@ -232,6 +236,9 @@ int mail_get_header_stream(struct mail *mail,
        struct mail_private *p = (struct mail_private *)mail;
        int ret;
 
+       i_assert(headers->count > 0);
+       i_assert(headers->box == mail->box);
+
        T_BEGIN {
                ret = p->v.get_header_stream(mail, headers, stream_r);
        } T_END;