Kaydet (Commit) 31e984c3 authored tarafından R. David Murray's avatar R. David Murray

#10004: in Q encoded word ignore '=xx' when xx is not valid hex.

Bug report and fix by Thomas Guettler.
üst 9e88b5ae
......@@ -294,4 +294,4 @@ def header_decode(s):
the high level email.header class for that functionality.
"""
s = s.replace('_', ' ')
return re.sub(r'=\w{2}', _unquote_match, s, re.ASCII)
return re.sub(r'=[a-fA-F0-9]{2}', _unquote_match, s, re.ASCII)
......@@ -1659,6 +1659,12 @@ Re: =?mac-iceland?q?r=8Aksm=9Arg=8Cs?= baz foo bar =?mac-iceland?q?r=8Aksm?=
dh = decode_header(s % q)
self.assertEqual(dh, [(a, 'iso-8859-1')])
def test_rfc2047_Q_invalid_digits(self):
# issue 10004.
s = '=?iso-8659-1?Q?andr=e9=zz?='
self.assertEqual(decode_header(s),
[(b'andr\xe9=zz', 'iso-8659-1')])
# Test the MIMEMessage class
class TestMIMEMessage(TestEmailBase):
......
......@@ -79,6 +79,9 @@ Core and Builtins
Library
-------
- Issue #10004: quoprimime no longer generates a traceback when confronted
with invalid characters after '=' in a Q-encoded word.
- Issue #1491: BaseHTTPServer nows send a 100 Continue response before sending
a 200 OK for the Expect: 100-continue request header.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment