diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2020-09-01 14:58:35 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2020-09-01 14:58:35 +0100 |
commit | e0202bf46cc5e3641bec6a7e6b5b986ff6cc283d (patch) | |
tree | cb69e89d616c4c4925604c5731d08668286a5127 /src/ragel | |
parent | f031b11ddb8b74b82983b634fc910926ffc58600 (diff) | |
download | rspamd-e0202bf46cc5e3641bec6a7e6b5b986ff6cc283d.tar.gz rspamd-e0202bf46cc5e3641bec6a7e6b5b986ff6cc283d.zip |
[Fix] Understand utf8 in content-disposition parser
Diffstat (limited to 'src/ragel')
-rw-r--r-- | src/ragel/content_disposition.rl | 2 | ||||
-rw-r--r-- | src/ragel/smtp_base.rl | 5 |
2 files changed, 6 insertions, 1 deletions
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+)*; |