From 21c5425d896722a19e4fbdbc0ede64e1e6bd7762 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 2 Jan 2013 17:25:44 +0100 Subject: [PATCH] [IMP] mail_sanitize: simplification of the regular expression bzr revid: chm@openerp.com-20130102162544-jfwdfqx2ruf0x1q2 --- openerp/tests/test_mail.py | 2 +- openerp/tools/mail.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/tests/test_mail.py b/openerp/tests/test_mail.py index d7b3e786604..ddb8fc4a195 100644 --- a/openerp/tests/test_mail.py +++ b/openerp/tests/test_mail.py @@ -230,7 +230,7 @@ class TestSanitizer(unittest2.TestCase): self.assertNotIn(attr, sanitized_html, 'html_sanitize did not remove enough unwanted attributes') emails =[("Charles ", "Charles <charles.bidule@truc.fr>"), - ("Dupuis <'tr/-: ${dupuis><#><$'@truc.baz.fr>", "Dupuis <'tr/-: ${dupuis><#><$'@truc.baz.fr>"), + ("Dupuis <'tr/-: ${dupuis#$'@truc.baz.fr>", "Dupuis <'tr/-: ${dupuis#$'@truc.baz.fr>"), ("Technical ", "Technical <service/technical+2@open.com>"), ("Div nico ", "Div nico <div-nico@open.com>")] for email in emails: diff --git a/openerp/tools/mail.py b/openerp/tools/mail.py index 01b6a7cacc3..7ca9dd75bac 100644 --- a/openerp/tools/mail.py +++ b/openerp/tools/mail.py @@ -50,7 +50,7 @@ def html_sanitize(src): src = ustr(src, errors='replace') # html encode email tags - part = re.compile(r"(<\s*([^\s]+|'([^']|(?:\\)\\(\\\\)*')+'|\"([^\"]|(?:\\)\\(\\\\)*\")+\")@[^\s]+\s*>)", re.IGNORECASE | re.DOTALL) + part = re.compile(r"(<[^<>]+@[^<>]+>)", re.IGNORECASE | re.DOTALL) src = part.sub(lambda m: cgi.escape(m.group(1)), src) # some corner cases make the parser crash (such as in test_mail)