From 3941b9c4a139e80d56fc270f29264b9c1704d44d Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Mon, 4 Oct 2010 10:49:42 +0100 Subject: [PATCH] fix exceptions in mobi caused by new thumbnails being larger than the one stored in the file. Why things are done this way, I don't know. --- src/calibre/ebooks/metadata/mobi.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/calibre/ebooks/metadata/mobi.py b/src/calibre/ebooks/metadata/mobi.py index 408bab828d..30668d70f7 100644 --- a/src/calibre/ebooks/metadata/mobi.py +++ b/src/calibre/ebooks/metadata/mobi.py @@ -404,14 +404,16 @@ class MetadataUpdater(object): if self.cover_record is not None: size = len(self.cover_record) cover = rescale_image(data, size) - cover += '\0' * (size - len(cover)) - self.cover_record[:] = cover + if len(cover) <= size: + cover += '\0' * (size - len(cover)) + self.cover_record[:] = cover if self.thumbnail_record is not None: size = len(self.thumbnail_record) thumbnail = rescale_image(data, size, dimen=MAX_THUMB_DIMEN) - thumbnail += '\0' * (size - len(thumbnail)) - self.thumbnail_record[:] = thumbnail - return + if len(thumbnail) <= size: + thumbnail += '\0' * (size - len(thumbnail)) + self.thumbnail_record[:] = thumbnail + return def set_metadata(stream, mi): mu = MetadataUpdater(stream)