From b9dbe12baa42b70ffeda8fc2f65b4407648ab35f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 25 Jul 2018 13:17:05 +0300 Subject: [PATCH] lib-mail: Add asserts to message_part_*() to make sure part->data isn't NULL This makes it easier to debug the crashes than just having a segfault. --- src/lib-mail/message-part-data.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lib-mail/message-part-data.c b/src/lib-mail/message-part-data.c index 35f35a0f93..bb2fdf8d39 100644 --- a/src/lib-mail/message-part-data.c +++ b/src/lib-mail/message-part-data.c @@ -25,6 +25,7 @@ bool message_part_data_is_plain_7bit(const struct message_part *part) { const struct message_part_data *data = part->data; + i_assert(data != NULL); i_assert(part->parent == NULL); /* if content-type is text/xxx we don't have to check any @@ -73,6 +74,8 @@ bool message_part_data_get_filename(const struct message_part *part, const struct message_part_param *params; unsigned int params_count, i; + i_assert(data != NULL); + params = data->content_disposition_params; params_count = data->content_disposition_params_count; @@ -514,6 +517,8 @@ bool message_part_has_content_types(struct message_part *part, const char *const *ptr; const char *content_type; + i_assert(data != NULL); + if (data->content_type == NULL) return FALSE; else if (data->content_subtype == NULL) @@ -535,6 +540,8 @@ bool message_part_has_parameter(struct message_part *part, const char *parameter { struct message_part_data *data = part->data; + i_assert(data != NULL); + for (unsigned int i = 0; i < data->content_disposition_params_count; i++) { const struct message_part_param *param = &data->content_disposition_params[i];