Commit 20ad3634 authored by R. David Murray's avatar R. David Murray

Merged revisions 85142 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85142 | r.david.murray | 2010-10-01 11:40:20 -0400 (Fri, 01 Oct 2010) | 5 lines

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

  Bug report and fix by Thomas Guettler.
........
parent cb5e22de
...@@ -333,4 +333,4 @@ def header_decode(s): ...@@ -333,4 +333,4 @@ def header_decode(s):
the high level email.header class for that functionality. the high level email.header class for that functionality.
""" """
s = s.replace('_', ' ') s = s.replace('_', ' ')
return re.sub(r'=\w{2}', _unquote_match, s) return re.sub(r'=[a-fA-F0-9]{2}', _unquote_match, s)
...@@ -1621,6 +1621,12 @@ class TestRFC2047(unittest.TestCase): ...@@ -1621,6 +1621,12 @@ class TestRFC2047(unittest.TestCase):
dh = decode_header(s % q) dh = decode_header(s % q)
self.assertEqual(dh, [(a, 'iso-8859-1')]) 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 # Test the MIMEMessage class
class TestMIMEMessage(TestEmailBase): class TestMIMEMessage(TestEmailBase):
......
...@@ -48,6 +48,9 @@ Core and Builtins ...@@ -48,6 +48,9 @@ Core and Builtins
Library Library
------- -------
- Issue #10004: quoprimime no longer generates a traceback when confronted
with invalid characters after '=' in a Q-encoded word.
- Issue #9950: Fix socket.sendall() crash or misbehaviour when a signal is - Issue #9950: Fix socket.sendall() crash or misbehaviour when a signal is
received. Now sendall() properly calls signal handlers if necessary, received. Now sendall() properly calls signal handlers if necessary,
and retries sending if these returned successfully, including on sockets and retries sending if these returned successfully, including on sockets
......
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