From c10a012a44a1c40df0e90511f745af0b7377a665 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 23 Dec 2016 00:38:55 +0000 Subject: [PATCH] [Minor] Add condition to parse special mime headers --- src/libmime/mime_headers.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/libmime/mime_headers.c b/src/libmime/mime_headers.c index eaee0a5ae..282579548 100644 --- a/src/libmime/mime_headers.c +++ b/src/libmime/mime_headers.c @@ -95,12 +95,11 @@ rspamd_mime_header_check_special (struct rspamd_task *task, static void rspamd_mime_header_add (struct rspamd_task *task, - GHashTable *target, struct rspamd_mime_header *rh) + GHashTable *target, struct rspamd_mime_header *rh, + gboolean check_special) { GPtrArray *ar; - rspamd_mime_header_check_special (task, rh); - if ((ar = g_hash_table_lookup (target, rh->name)) != NULL) { g_ptr_array_add (ar, rh); msg_debug_task ("append raw header %s: %s", rh->name, rh->value); @@ -112,7 +111,9 @@ rspamd_mime_header_add (struct rspamd_task *task, msg_debug_task ("add new raw header %s: %s", rh->name, rh->value); } - rspamd_mime_header_check_special (task, rh); + if (check_special) { + rspamd_mime_header_check_special (task, rh); + } } /* Convert raw headers to a list of struct raw_header * */ @@ -306,14 +307,14 @@ rspamd_mime_headers_process (struct rspamd_task *task, GHashTable *target, /* We also validate utf8 and replace all non-valid utf8 chars */ rspamd_mime_charset_utf_enforce (new->decoded, strlen (new->decoded)); - rspamd_mime_header_add (task, target, new); + rspamd_mime_header_add (task, target, new, check_newlines); state = 0; break; case 5: /* Header has only name, no value */ new->value = ""; new->decoded = ""; - rspamd_mime_header_add (task, target, new); + rspamd_mime_header_add (task, target, new, check_newlines); state = 0; break; case 99: -- 2.39.5