AZW3 Input: Fix crash when processing AZW3 files that contain certain SVG images dies to a bug in ImageMagick. See #1384375 (svg cover lost when converting ePub->AZW3)

This commit is contained in:
Kovid Goyal 2014-10-23 09:08:09 +05:30
parent 4a5ac17482
commit 41ce07ea7a
2 changed files with 11 additions and 2 deletions

View File

@ -10,10 +10,10 @@ def what(file, h=None):
if h is None:
if isinstance(file, basestring):
f = open(file, 'rb')
h = f.read(44)
h = f.read(150)
else:
location = file.tell()
h = file.read(44)
h = file.read(150)
file.seek(location)
f = None
else:
@ -132,6 +132,12 @@ def test_emf(h, f):
tests.append(test_emf)
def test_svg(h, f):
if (h[:2] == b'<?' and h[2:5].lower() == 'xml' and b'<svg' in h) or h.startswith(b'<svg'):
return 'svg'
tests.append(test_svg)
# --------------------#
# Small test program #
# --------------------#

View File

@ -137,6 +137,9 @@ def identify_data(data):
(width, height, format)
or raises an Exception if data is not an image.
'''
if data.startswith(b'<?xml'):
# ImageMagick segfaults when trying to identify SVG images
raise ValueError('Identifying svg images is not supported')
img = Image()
if hasattr(img, 'identify'):
img.identify(data)