Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
a57c3976
Commit
a57c3976
authored
Sep 07, 2016
by
R David Murray
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
27988: Make sure iter_attachments does not mutate the payload list.
parent
8bdea117
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
1 deletion
+13
-1
Lib/email/message.py
Lib/email/message.py
+1
-1
Lib/test/test_email/test_message.py
Lib/test/test_email/test_message.py
+10
-0
Misc/NEWS
Misc/NEWS
+2
-0
No files found.
Lib/email/message.py
View file @
a57c3976
...
...
@@ -1022,7 +1022,7 @@ class MIMEPart(Message):
maintype
,
subtype
=
self
.
get_content_type
().
split
(
'/'
)
if
maintype
!=
'multipart'
or
subtype
==
'alternative'
:
return
parts
=
self
.
get_payload
()
parts
=
self
.
get_payload
()
.
copy
()
if
maintype
==
'multipart'
and
subtype
==
'related'
:
# For related, we treat everything but the root as an attachment.
# The root may be indicated by 'start'; if there's no start or we
...
...
Lib/test/test_email/test_message.py
View file @
a57c3976
...
...
@@ -732,6 +732,16 @@ class TestEmailMessageBase:
m
.
set_param
(
'filename'
,
'abc.png'
,
'Content-Disposition'
)
self
.
assertTrue
(
m
.
is_attachment
())
def
test_iter_attachments_mutation
(
self
):
# We had a bug where iter_attachments was mutating the list.
m
=
self
.
_make_message
()
m
.
set_content
(
'arbitrary text as main part'
)
m
.
add_related
(
'more text as a related part'
)
m
.
add_related
(
'yet more text as a second "attachment"'
)
orig
=
m
.
get_payload
().
copy
()
self
.
assertEqual
(
len
(
list
(
m
.
iter_attachments
())),
2
)
self
.
assertEqual
(
m
.
get_payload
(),
orig
)
class
TestEmailMessage
(
TestEmailMessageBase
,
TestEmailBase
):
message
=
EmailMessage
...
...
Misc/NEWS
View file @
a57c3976
...
...
@@ -62,6 +62,8 @@ Core and Builtins
Library
-------
-
Issue
27988
:
Fix
email
iter_attachments
incorrect
mutation
of
payload
list
.
-
Issue
#
27691
:
Fix
ssl
module
's parsing of GEN_RID subject alternative name
fields in X.509 certs.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment