cpython/Lib/email
Abhilash Raj aa79707262 bpo-30835: email: Fix AttributeError when parsing invalid CTE (GH-13598)
* bpo-30835: email: Fix AttributeError when parsing invalid Content-Transfer-Encoding

Parsing an email containing a multipart Content-Type, along with a
Content-Transfer-Encoding containing an invalid (non-ASCII-decodable) byte
will fail. email.feedparser.FeedParser._parsegen() gets the header and
attempts to convert it to lowercase before comparing it with the accepted
encodings, but as the header contains an invalid byte, it's returned as a
Header object rather than a str.

Cast the Content-Transfer-Encoding header to a str to avoid this.

Found using the AFL fuzzer.

Reported-by: Daniel Axtens <dja@axtens.net>
Signed-off-by: Andrew Donnellan <andrew@donnellan.id.au>

* Add email and NEWS entry for the bugfix.
2019-06-04 11:00:47 -07:00
..
mime Issue #27445: Merge from 3.5 2016-09-08 19:42:11 +03:00
__init__.py #22508: Drop email __version__ string. It no longer means anything. 2014-10-03 13:02:47 -04:00
_encoded_words.py bpo-27397: Make email module properly handle invalid-length base64 strings (#7583) 2018-06-12 15:46:22 +03:00
_header_value_parser.py bpo-35805: Add parser for Message-ID email header. (GH-13397) 2019-06-04 10:41:34 -07:00
_parseaddr.py Closes #15925: fix regression in parsedate() and parsedate_tz() that should return None if unable to parse the argument. 2012-09-22 09:03:56 +02:00
_policybase.py [email] bpo-29478: Fix passing max_line_length=None from Compat32 policy (GH-595) 2017-06-11 23:43:41 -07:00
architecture.rst Fix typos in multiple `.rst` files (#1668) 2017-05-19 23:37:57 +03:00
base64mime.py Correct misspellings of ISO-8859 2016-08-10 05:25:16 +00:00
charset.py bpo-36793: Remove unneeded __str__ definitions. (GH-13081) 2019-05-06 22:29:40 +03:00
contentmanager.py Merge with 3.5 2016-09-09 12:09:07 -07:00
encoders.py #19957: Simplify encode_7or8bit now that _payload is always str. 2013-12-12 21:40:20 -05:00
errors.py bpo-27397: Make email module properly handle invalid-length base64 strings (#7583) 2018-06-12 15:46:22 +03:00
feedparser.py bpo-30835: email: Fix AttributeError when parsing invalid CTE (GH-13598) 2019-06-04 11:00:47 -07:00
generator.py Merge: #19003: Only replace \r and/or \n line endings in email.generator. 2016-09-11 17:23:33 -04:00
header.py bpo-27737: Allow whitespace only headers encoding (#13478) 2019-05-22 21:13:16 -04:00
headerregistry.py bpo-35805: Add parser for Message-ID email header. (GH-13397) 2019-06-04 10:41:34 -07:00
iterators.py utilize yield from 2012-10-01 12:53:43 -07:00
message.py #20476: Deal with the message_factory circular import differently. 2016-09-10 00:22:25 -04:00
parser.py Issue #27076: Doc, comment and tests spelling fixes 2016-05-26 05:35:26 +00:00
policy.py bpo-33524: Fix the folding of email header when max_line_length is 0 or None (#13391) 2019-05-17 15:28:44 -04:00
quoprimime.py bpo-32297: Few misspellings found in Python source code comments. (#4803) 2017-12-14 13:04:53 +02:00
utils.py bpo-31677: email: Remove re.IGNORECASE flag (GH-3868) 2017-10-04 12:47:38 +09:00