From 8bc11e1d911eb77e79d32b4f2caa7b100bcc29d8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 12 Oct 2021 15:53:22 +0530 Subject: [PATCH] avoid lrf metadata read failure on malformed meta blocks --- src/calibre/ebooks/lrf/meta.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/lrf/meta.py b/src/calibre/ebooks/lrf/meta.py index 5996632f6b..a003b82db6 100644 --- a/src/calibre/ebooks/lrf/meta.py +++ b/src/calibre/ebooks/lrf/meta.py @@ -20,6 +20,7 @@ import xml.dom.minidom as dom from functools import wraps from calibre.ebooks.chardet import xml_to_unicode +from calibre.utils.cleantext import clean_xml_chars from calibre.ebooks.metadata import MetaInformation, string_to_authors from polyglot.builtins import unicode_type, string_or_bytes @@ -400,7 +401,7 @@ class LRFMetaFile: yielded unexpected results") src = xml_to_unicode(src, strip_encoding_pats=True, resolve_entities=True, assume_utf8=True)[0] - return dom.parseString(src) + return dom.parseString(clean_xml_chars(src)) except zlib.error: raise LRFException("Unable to decompress document meta information")