diff --git a/src/calibre/ebooks/epub/output.py b/src/calibre/ebooks/epub/output.py index 952559a9e2..17f6eb9f46 100644 --- a/src/calibre/ebooks/epub/output.py +++ b/src/calibre/ebooks/epub/output.py @@ -241,9 +241,12 @@ class EPUBOutput(OutputFormatPlugin): self.log.debug('Encrypting font:', uri) with open(path, 'r+b') as f: data = f.read(1024) - f.seek(0) - for i in range(1024): - f.write(chr(ord(data[i]) ^ key[i%16])) + if len(data) >= 1024: + f.seek(0) + for i in range(1024): + f.write(chr(ord(data[i]) ^ key[i%16])) + else: + self.log.warn('Font', path, 'is invalid, ignoring') if not isinstance(uri, unicode): uri = uri.decode('utf-8') fonts.append(u'''