From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 17 Apr 2024 16:59:35 +0000 (+0200) Subject: [3.12] gh-80361: Fix TypeError in email.Message.get_payload() (GH-117994) (GH-117998) X-Git-Tag: v3.12.4~209 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fda8cd1fd38a12e17b1db1775d54ff0fa4d886b8;p=thirdparty%2FPython%2Fcpython.git [3.12] gh-80361: Fix TypeError in email.Message.get_payload() (GH-117994) (GH-117998) It was raised when the charset is rfc2231 encoded, e.g.: Content-Type: text/plain; charset*=ansi-x3.4-1968''utf-8 (cherry picked from commit deaecb88fa5da68cbffca413c63af95fd99578dd) Co-authored-by: Serhiy Storchaka --- diff --git a/Lib/email/message.py b/Lib/email/message.py index a14cca56b374..46bb8c21942a 100644 --- a/Lib/email/message.py +++ b/Lib/email/message.py @@ -294,7 +294,7 @@ class Message: try: bpayload = payload.encode('ascii', 'surrogateescape') try: - payload = bpayload.decode(self.get_param('charset', 'ascii'), 'replace') + payload = bpayload.decode(self.get_content_charset('ascii'), 'replace') except LookupError: payload = bpayload.decode('ascii', 'replace') except UnicodeEncodeError: diff --git a/Lib/test/test_email/test_email.py b/Lib/test/test_email/test_email.py index a373c53c7c79..fc8d87974e6a 100644 --- a/Lib/test/test_email/test_email.py +++ b/Lib/test/test_email/test_email.py @@ -4010,6 +4010,21 @@ class Test8BitBytesHandling(TestEmailBase): self.assertEqual(msg.get_payload(decode=True), '<,.V