diff options
| author | Aurélien Bompard | 2016-03-08 18:23:53 +0100 |
|---|---|---|
| committer | Barry Warsaw | 2016-03-10 17:43:11 -0500 |
| commit | aae1f92285ec2b26b7569802261648c24d80d957 (patch) | |
| tree | bef40f17b3e87d3db099a2f7627f21d3013827f3 /src/mailman/rules/approved.py | |
| parent | cb8ddd1671e424478f002e527871f0c5839425d9 (diff) | |
| download | mailman-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.py | 10 |
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): |
