From ca15ff51bd1721423d8c6cd50a0a5a83a0bc526d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matth=C3=A4us=20Wander?= Date: Wed, 9 Jun 2021 14:29:04 +0200 Subject: [PATCH] handle invalid reports gracefully --- parsedmarc/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/parsedmarc/__init__.py b/parsedmarc/__init__.py index 562a0a8..c78cfc8 100644 --- a/parsedmarc/__init__.py +++ b/parsedmarc/__init__.py @@ -225,7 +225,8 @@ def parse_aggregate_report_xml(xml, offline=False, nameservers=None, errors.append("Invalid XML: {0}".format(e.__str__())) tree = etree.parse(BytesIO(xml.encode('utf-8')), etree.XMLParser(recover=True)) - xml = etree.tostring(tree).decode('utf-8') + s = etree.tostring(tree) + xml = '' if s is None else s.decode('utf-8') try: # Replace XML header (sometimes they are invalid)