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.3.0.rc1~2588 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=045d5940e885be4d5d3ce96f2fde31ae799fa556;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 b442139a67..e20fa8c4e4 100644 --- a/src/lib-storage/index/index-mail-headers.c +++ b/src/lib-storage/index/index-mail-headers.c @@ -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 = diff --git a/src/lib-storage/mail-storage.c b/src/lib-storage/mail-storage.c index 87cb8b75ff..e7e790f8ea 100644 --- a/src/lib-storage/mail-storage.c +++ b/src/lib-storage/mail-storage.c @@ -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); diff --git a/src/lib-storage/mail.c b/src/lib-storage/mail.c index 903feade58..f92eb4f959 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;