]> 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)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 18 Nov 2016 11:55:48 +0000 (13:55 +0200)
src/lib-storage/index/index-mail-headers.c
src/lib-storage/mail-storage.c
src/lib-storage/mail.c

index 94bc24ed24f3a2629966de7a3fa4198a09334e7f..e838f927b3e4a91a09d48c052b39323337fec614 100644 (file)
@@ -865,9 +865,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 151ef477b092cd65ec10716548c29e24b4ae9d25..2fac3775ccd0c9d1d9c03ce7a1d4b86c168d69a6 100644 (file)
@@ -1802,6 +1802,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 47b6b232b0c0f1fe7c67421e08384ee8dde92902..b2750b13258dd22e95c03f7d2326fbdec321bb5b 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;