diff --git a/src/exif.cpp b/src/exif.cpp index 5e4d0152..99e3446a 100644 --- a/src/exif.cpp +++ b/src/exif.cpp @@ -736,6 +736,8 @@ namespace Exiv2 { long ExifData::eraseThumbnail() { + // First, determine if the thumbnail is at the end of the Exif data + bool stp = stdThumbPosition(); // Delete all Exif.Thumbnail.* (IFD1) metadata ExifMetadata::iterator i = begin(); while (i != end()) { @@ -747,12 +749,13 @@ namespace Exiv2 { } } long delta = 0; - if (stdThumbPosition()) { + if (stp) { delta = size_; if (size_ > 0 && ifd0_.next() > 0) { // Truncate IFD1 and thumbnail data from the data buffer size_ = ifd0_.next(); ifd0_.setNext(0, byteOrder()); + ifd1_.clear(); } delta -= size_; }