From: Vsevolod Stakhov Date: Mon, 27 Mar 2017 14:15:34 +0000 (+0100) Subject: [Feature] Work with broken rfc2047 tokens X-Git-Tag: 1.5.4~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf2e401ad6246569faff56ec69429451faf7bcbd;p=thirdparty%2Frspamd.git [Feature] Work with broken rfc2047 tokens --- diff --git a/src/ragel/rfc2047_parser.rl b/src/ragel/rfc2047_parser.rl index 05b08a6aea..26c016361c 100644 --- a/src/ragel/rfc2047_parser.rl +++ b/src/ragel/rfc2047_parser.rl @@ -43,12 +43,12 @@ token = (graph - especials)+; charset = token; encoding = "Q" | "q" | "B" | "b"; - encoded_text = (print - ("?" | " "))+; + encoded_text = (print - ("?"))+; encoded_word = "=?" charset >Start_Charset %End_Charset ("*" language)? "?" encoding %End_Encoding "?" encoded_text >Start_Encoded %End_Encoded - "?="; + "?="?; main := encoded_word; }%% @@ -64,7 +64,8 @@ rspamd_rfc2047_parser (const gchar *in, gsize len, gint *pencoding, { const char *p = in, *pe = in + len, *encoded_start = NULL, *encoded_end = NULL, - *charset_start = NULL, *charset_end = NULL; + *charset_start = NULL, *charset_end = NULL, + *eof = in + len; gint encoding = RSPAMD_RFC2047_QP, cs = 0; %% write init;