From c3f1bdca52061dd55bc3211ad55f4d9c973ff58b Mon Sep 17 00:00:00 2001 From: missytake Date: Wed, 19 Feb 2025 16:38:01 +0100 Subject: [PATCH] filtermail: strip any empty lines at the end (#496) --- CHANGELOG.md | 3 +++ chatmaild/src/chatmaild/filtermail.py | 4 +++- chatmaild/src/chatmaild/tests/test_filtermail.py | 10 ++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58cf350c..0cda321c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## untagged +- filtermail: don't require exactly 2 lines after openPGP payload + ([#497](https://github.com/chatmail/chatmail/pull/497)) + - cmdeploy dns: offer alternative DKIM record format for some web interfaces ([#470](https://github.com/deltachat/chatmail/pull/470)) diff --git a/chatmaild/src/chatmaild/filtermail.py b/chatmaild/src/chatmaild/filtermail.py index 38cfb578..751590e8 100644 --- a/chatmaild/src/chatmaild/filtermail.py +++ b/chatmaild/src/chatmaild/filtermail.py @@ -80,7 +80,9 @@ def check_armored_payload(payload: str): return False payload = payload.removeprefix(prefix) - suffix = "-----END PGP MESSAGE-----\r\n\r\n" + while payload.endswith("\r\n"): + payload = payload.removesuffix("\r\n") + suffix = "-----END PGP MESSAGE-----" if not payload.endswith(suffix): return False payload = payload.removesuffix(suffix) diff --git a/chatmaild/src/chatmaild/tests/test_filtermail.py b/chatmaild/src/chatmaild/tests/test_filtermail.py index 24d5cad7..033f4c9c 100644 --- a/chatmaild/src/chatmaild/tests/test_filtermail.py +++ b/chatmaild/src/chatmaild/tests/test_filtermail.py @@ -205,10 +205,20 @@ UN4fiB0KR9JyG2ayUdNJVkXZSZLnHyRgiaadlpUo16LVvw==\r =b5Kp\r -----END PGP MESSAGE-----\r \r +\r """ assert check_armored_payload(payload) == True + payload = payload.removesuffix("\r\n") + assert check_armored_payload(payload) == True + + payload = payload.removesuffix("\r\n") + assert check_armored_payload(payload) == True + + payload = payload.removesuffix("\r\n") + assert check_armored_payload(payload) == True + payload = """-----BEGIN PGP MESSAGE-----\r \r HELLOWORLD