From: Timo Sirainen Date: Thu, 10 Nov 2016 11:19:05 +0000 (+0200) Subject: lib-storage: Add asserts to make sure mailbox_header_lookup_ctx is used correctly. X-Git-Tag: 2.2.27~121 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2479d44bb93751cc6f7c7818b4085e7f11049be3;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Add asserts to make sure mailbox_header_lookup_ctx is used correctly. --- diff --git a/src/lib-storage/index/index-mail-headers.c b/src/lib-storage/index/index-mail-headers.c index 94bc24ed24..e838f927b3 100644 --- a/src/lib-storage/index/index-mail-headers.c +++ b/src/lib-storage/index/index-mail-headers.c @@ -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 = diff --git a/src/lib-storage/mail-storage.c b/src/lib-storage/mail-storage.c index 151ef477b0..2fac3775cc 100644 --- a/src/lib-storage/mail-storage.c +++ b/src/lib-storage/mail-storage.c @@ -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); diff --git a/src/lib-storage/mail.c b/src/lib-storage/mail.c index 47b6b232b0..b2750b1325 100644 --- a/src/lib-storage/mail.c +++ b/src/lib-storage/mail.c @@ -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;