(int)l1->line_num - (int)l2->line_num;
}
-static void index_mail_parse_header_deinit(struct index_mail *mail)
+void index_mail_parse_header_deinit(struct index_mail *mail)
{
mail->data.header_parser_initialized = FALSE;
}
msg_parser_set.hdr_flags,
index_mail_parse_header_cb, mail);
}
- if (index_mail_stream_check_failure(mail) < 0)
+ if (index_mail_stream_check_failure(mail) < 0) {
+ index_mail_parse_header_deinit(mail);
return -1;
+ }
+ i_assert(!mail->data.header_parser_initialized);
data->hdr_size_set = TRUE;
data->access_part &= ENUM_NEGATE(PARSE_HDR);
return 0;
mail->data.parsed_bodystructure = FALSE;
if (mail->data.save_bodystructure_body)
mail->data.save_bodystructure_header = TRUE;
+ if (mail->data.header_parser_initialized)
+ index_mail_parse_header_deinit(mail);
return -1;
}
+ if (mail->data.header_parser_initialized) {
+ i_assert(!success);
+ index_mail_parse_header_deinit(mail);
+ }
+
if (mail->data.save_bodystructure_body) {
mail->data.parsed_bodystructure = TRUE;
mail->data.save_bodystructure_header = FALSE;
if (mail->data.parser_ctx == NULL) {
/* we didn't even start cache parsing */
+ i_assert(!mail->data.header_parser_initialized);
return;
}
}
struct mailbox_header_lookup_ctx *headers,
const char *reason)
ATTR_NULL(2);
+void index_mail_parse_header_deinit(struct index_mail *mail);
/* Same as index_mail_parse_headers(), but assume that the stream is
already opened. */
int index_mail_parse_headers_internal(struct index_mail *mail,