]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Add condition to parse special mime headers
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 23 Dec 2016 00:38:55 +0000 (00:38 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 23 Dec 2016 00:38:55 +0000 (00:38 +0000)
src/libmime/mime_headers.c

index eaee0a5aeacb07d5378c79eefd0e00f8813a50f8..282579548b286971f68e3ef7a21d8a49b2c67e19 100644 (file)
@@ -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: