summaryrefslogtreecommitdiff
path: root/src/mailman/rules/approved.py
diff options
context:
space:
mode:
authorAurélien Bompard2016-03-08 18:23:53 +0100
committerBarry Warsaw2016-03-10 17:43:11 -0500
commitaae1f92285ec2b26b7569802261648c24d80d957 (patch)
treebef40f17b3e87d3db099a2f7627f21d3013827f3 /src/mailman/rules/approved.py
parentcb8ddd1671e424478f002e527871f0c5839425d9 (diff)
downloadmailman-aae1f92285ec2b26b7569802261648c24d80d957.tar.gz
mailman-aae1f92285ec2b26b7569802261648c24d80d957.tar.zst
mailman-aae1f92285ec2b26b7569802261648c24d80d957.zip
Diffstat (limited to 'src/mailman/rules/approved.py')
-rw-r--r--src/mailman/rules/approved.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mailman/rules/approved.py b/src/mailman/rules/approved.py
index 5cb8de8e5..a289a90be 100644
--- a/src/mailman/rules/approved.py
+++ b/src/mailman/rules/approved.py
@@ -74,8 +74,14 @@ class Approved:
payload = part.get_payload(decode=True)
break
if payload is not None:
- charset = part.get_content_charset('us-ascii')
- payload = payload.decode(charset, 'replace')
+ try:
+ # Do the decoding inside the try/except so that if the
+ # charset conversion fails, we'll just drop back to ascii.
+ charset = part.get_content_charset('us-ascii')
+ payload = payload.decode(charset, 'replace')
+ except (LookupError, TypeError):
+ # Unknown or empty charset.
+ payload = payload.decode('us-ascii', 'replace')
line = ''
lines = payload.splitlines(True)
for lineno, line in enumerate(lines):