From: Vsevolod Stakhov Date: Tue, 1 Sep 2020 13:58:35 +0000 (+0100) Subject: [Fix] Understand utf8 in content-disposition parser X-Git-Tag: 2.6~92 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e0202bf46cc5e3641bec6a7e6b5b986ff6cc283d;p=rspamd.git [Fix] Understand utf8 in content-disposition parser --- diff --git a/src/ragel/content_disposition.rl b/src/ragel/content_disposition.rl index abcd7796f..ff00dce94 100644 --- a/src/ragel/content_disposition.rl +++ b/src/ragel/content_disposition.rl @@ -7,7 +7,7 @@ balanced_ccontent := ccontent* ')' @{ fret; }; comment = "(" (FWS? ccontent)* FWS? ")"; CFWS = ((FWS? comment)+ FWS?) | FWS; - qcontent = qtextSMTP | quoted_pairSMTP; + qcontent = qtextSMTP | quoted_pairSMTP | textUTF8; quoted_string = CFWS? (DQUOTE (((FWS? qcontent)* FWS?) >Quoted_Str_Start %Quoted_Str_End) diff --git a/src/ragel/smtp_base.rl b/src/ragel/smtp_base.rl index c9cc91061..cb4f066bc 100644 --- a/src/ragel/smtp_base.rl +++ b/src/ragel/smtp_base.rl @@ -24,6 +24,11 @@ quoted_pairSMTP = "\\" 32..126; qtextSMTP = 32..33 | 35..91 | 93..126; + utf8_cont = 0x80..0xbf; + utf8_2c = 0xc0..0xdf utf8_cont; + utf8_3c = 0xe0..0xef utf8_cont utf8_cont; + utf8_4c = 0xf0..0xf7 utf8_cont utf8_cont utf8_cont; + textUTF8 = qtextSMTP | utf8_2c | utf8_3c | utf8_4c; Atom = atext+; Dot_string = Atom ("." Atom)*; dot_atom_text = atext+ ("." atext+)*;