From: Vsevolod Stakhov Date: Mon, 8 Apr 2019 12:55:09 +0000 (+0100) Subject: [Minor] Strip some bad characters from CTE headers X-Git-Tag: 1.9.2~59 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fe8028c1083719f2597e015f16e1d24a4847244c;p=thirdparty%2Frspamd.git [Minor] Strip some bad characters from CTE headers --- diff --git a/src/libmime/message.c b/src/libmime/message.c index 9bbd25d32d..56f0a0a98b 100644 --- a/src/libmime/message.c +++ b/src/libmime/message.c @@ -690,6 +690,11 @@ rspamd_message_process_plain_text_part (struct rspamd_task *task, /* Check for ical */ rspamd_ftok_t cal_ct; + /* + * TODO: If we want to process more than that, we need + * to create some generic framework that accepts a part + * and returns a processed data + */ RSPAMD_FTOK_ASSIGN (&cal_ct, "calendar"); if (rspamd_ftok_casecmp (&cal_ct, &text_part->mime_part->ct->subtype) == 0) { diff --git a/src/libmime/mime_parser.c b/src/libmime/mime_parser.c index dc55efe205..6572f4e887 100644 --- a/src/libmime/mime_parser.c +++ b/src/libmime/mime_parser.c @@ -148,10 +148,13 @@ rspamd_mime_parser_init_lib (void) static enum rspamd_cte rspamd_mime_parse_cte (const gchar *in, gsize len) { - guint64 h = rspamd_cryptobox_fast_hash_specific (RSPAMD_CRYPTOBOX_XXHASH64, - in, len, 0xdeadbabe); + guint64 h; enum rspamd_cte ret = RSPAMD_CTE_UNKNOWN; + in = rspamd_string_len_strip (in, &len, " \t;,.+-#!`~'"); + h = rspamd_cryptobox_fast_hash_specific (RSPAMD_CRYPTOBOX_XXHASH64, + in, len, 0xdeadbabe); + switch (h) { case 0xCEDAA7056B4753F7ULL: /* 7bit */ ret = RSPAMD_CTE_7BIT;