diff --git a/src/calibre/ebooks/lit/reader.py b/src/calibre/ebooks/lit/reader.py index 87d0a29088..febaf280c6 100644 --- a/src/calibre/ebooks/lit/reader.py +++ b/src/calibre/ebooks/lit/reader.py @@ -543,7 +543,10 @@ class LitReader(object): raise LitError('Directory entry had 64bit name length.') if namelen > remaining - 3: raise LitError('Read past end of directory chunk') - name, chunk = chunk[:namelen].decode('utf-8'), chunk[namelen:] + try: + name, chunk = chunk[:namelen].decode('utf-8'), chunk[namelen:] + except UnicodeDecodeError: + break section, chunk, remaining = encint(chunk, remaining) offset, chunk, remaining = encint(chunk, remaining) size, chunk, remaining = encint(chunk, remaining)