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.
........
This commit is contained in:
R. David Murray 2010-10-01 15:45:48 +00:00
parent eccd4d910d
commit f9c957f2c6
3 changed files with 10 additions and 1 deletions

View file

@ -294,4 +294,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, re.ASCII) return re.sub(r'=[a-fA-F0-9]{2}', _unquote_match, s, re.ASCII)

View file

@ -1655,6 +1655,12 @@ Re: =?mac-iceland?q?r=8Aksm=9Arg=8Cs?= baz foo bar =?mac-iceland?q?r=8Aksm?=
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):

View file

@ -121,6 +121,9 @@ C-API
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