diff --git a/src/crwimage_int.cpp b/src/crwimage_int.cpp index fb51fa3d..3a0347a6 100644 --- a/src/crwimage_int.cpp +++ b/src/crwimage_int.cpp @@ -1228,13 +1228,15 @@ namespace Exiv2 { std::memset(buf.pData_, 0x0, buf.size_); uint16_t len = 0; + for (auto&& exif : exifData) { if (exif.ifdId() != ifdId) continue; const uint16_t s = exif.tag() * 2 + static_cast(exif.size()); - assert(s <= size); - if (len < s) len = s; - exif.copy(buf.pData_ + exif.tag() * 2, byteOrder); + if (s <= size) { + if (len < s) len = s; + exif.copy(buf.pData_ + exif.tag() * 2, byteOrder); + } } // Round the size to make it even. buf.size_ = len + len%2;