If plugin hooks into mail_get_stream() which causes data->parts to be set,
this code crashed with:
Panic: file index-mail.c: line 1163 (index_mail_parse_body): assertion failed: (data->parser_ctx != NULL)
index_mail_cache_reason(_mail, "mime parts");
if (index_mail_parse_headers(mail, NULL, reason) < 0)
return -1;
+ /* parts may be set now as a result of some plugin */
}
- data->save_message_parts = TRUE;
- if (index_mail_parse_body(mail, 0) < 0)
- return -1;
+ if (data->parts == NULL) {
+ data->save_message_parts = TRUE;
+ if (index_mail_parse_body(mail, 0) < 0)
+ return -1;
+ }
*parts_r = data->parts;
return 0;