diff --git a/src/rafimage.cpp b/src/rafimage.cpp index 9e79fa78..2750ee70 100644 --- a/src/rafimage.cpp +++ b/src/rafimage.cpp @@ -260,13 +260,16 @@ void RafImage::readMetadata() { } // Retreive metadata from embedded JPEG preview image. - auto jpg_io = std::make_unique(jpg_buf.data(), jpg_buf.size()); - auto jpg_img = JpegImage(std::move(jpg_io), false); - jpg_img.readMetadata(); - setByteOrder(jpg_img.byteOrder()); - xmpData_ = jpg_img.xmpData(); - exifData_ = jpg_img.exifData(); - iptcData_ = jpg_img.iptcData(); + try { + auto jpg_io = std::make_unique(jpg_buf.data(), jpg_buf.size()); + auto jpg_img = JpegImage(std::move(jpg_io), false); + jpg_img.readMetadata(); + setByteOrder(jpg_img.byteOrder()); + xmpData_ = jpg_img.xmpData(); + exifData_ = jpg_img.exifData(); + iptcData_ = jpg_img.iptcData(); + } catch (const Exiv2::Error&) { + } exifData_["Exif.Image2.JPEGInterchangeFormat"] = getULong(jpg_img_offset, bigEndian); exifData_["Exif.Image2.JPEGInterchangeFormatLength"] = getULong(jpg_img_length, bigEndian); diff --git a/tests/bugfixes/github/test_issue_857.py b/tests/bugfixes/github/test_issue_857.py index 266bebcd..d0472df6 100644 --- a/tests/bugfixes/github/test_issue_857.py +++ b/tests/bugfixes/github/test_issue_857.py @@ -22,7 +22,7 @@ class OutOfMemoryInRafImageReadMetadata(metaclass=CaseMeta): $kerCorruptedMetadata """, """Exiv2 exception in print action for file $filename2: -This does not look like a TIFF image +$kerCorruptedMetadata """ ] retval = [1,1]