diff options
author | R David Murray <rdmurray@bitdance.com> | 2014-02-08 22:54:56 (GMT) |
---|---|---|
committer | R David Murray <rdmurray@bitdance.com> | 2014-02-08 22:54:56 (GMT) |
commit | e9c31470e1680b7c9b9ee83c378b891e90ac58ab (patch) | |
tree | a70d2c26d0f9bac95a0cab4bd74d93fc7ef3a35c /Lib | |
parent | 409ea5dac1bc9fb408b7ae27c57132dec5a7f9b6 (diff) | |
download | cpython-e9c31470e1680b7c9b9ee83c378b891e90ac58ab.zip cpython-e9c31470e1680b7c9b9ee83c378b891e90ac58ab.tar.gz cpython-e9c31470e1680b7c9b9ee83c378b891e90ac58ab.tar.bz2 |
#14983: always add a line end after a MIME boundary marker.
This is more RFC compliant (see issue) and fixes a problem with
signature verifiers rejecting the part when signed. There is some
amount of backward compatibility concern here since it changes
the output, but the RFC issue coupled with fixing the problem
with signature verifiers seems worth the small risk of breaking
code that depends on the current incorrect output.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/email/generator.py | 3 | ||||
-rw-r--r-- | Lib/test/test_email/data/msg_02.txt | 1 | ||||
-rw-r--r-- | Lib/test/test_email/test_email.py | 15 |
3 files changed, 12 insertions, 7 deletions
diff --git a/Lib/email/generator.py b/Lib/email/generator.py index 07a97c7..e4a86d4 100644 --- a/Lib/email/generator.py +++ b/Lib/email/generator.py @@ -299,9 +299,8 @@ class Generator: # body-part self._fp.write(body_part) # close-delimiter transport-padding - self.write(self._NL + '--' + boundary + '--') + self.write(self._NL + '--' + boundary + '--' + self._NL) if msg.epilogue is not None: - self.write(self._NL) if self._mangle_from_: epilogue = fcre.sub('>From ', msg.epilogue) else: diff --git a/Lib/test/test_email/data/msg_02.txt b/Lib/test/test_email/data/msg_02.txt index 43f2480..5d0a7e1 100644 --- a/Lib/test/test_email/data/msg_02.txt +++ b/Lib/test/test_email/data/msg_02.txt @@ -119,6 +119,7 @@ hello --__--__---- + --192.168.1.2.889.32614.987812255.500.21814 Content-type: text/plain; charset=us-ascii Content-description: Digest Footer diff --git a/Lib/test/test_email/test_email.py b/Lib/test/test_email/test_email.py index 73ec2a6..51fe756 100644 --- a/Lib/test/test_email/test_email.py +++ b/Lib/test/test_email/test_email.py @@ -1711,7 +1711,8 @@ From: bperson@dom.ain --BOUNDARY ---BOUNDARY--''') +--BOUNDARY-- +''') def test_no_parts_in_a_multipart_with_empty_epilogue(self): outer = MIMEBase('multipart', 'mixed') @@ -1756,7 +1757,8 @@ MIME-Version: 1.0 Content-Transfer-Encoding: 7bit hello world ---BOUNDARY--''') +--BOUNDARY-- +''') def test_seq_parts_in_a_multipart_with_empty_preamble(self): eq = self.ndiffAssertEqual @@ -1782,7 +1784,8 @@ MIME-Version: 1.0 Content-Transfer-Encoding: 7bit hello world ---BOUNDARY--''') +--BOUNDARY-- +''') def test_seq_parts_in_a_multipart_with_none_preamble(self): @@ -1808,7 +1811,8 @@ MIME-Version: 1.0 Content-Transfer-Encoding: 7bit hello world ---BOUNDARY--''') +--BOUNDARY-- +''') def test_seq_parts_in_a_multipart_with_none_epilogue(self): @@ -1834,7 +1838,8 @@ MIME-Version: 1.0 Content-Transfer-Encoding: 7bit hello world ---BOUNDARY--''') +--BOUNDARY-- +''') def test_seq_parts_in_a_multipart_with_empty_epilogue(self): |