Exiv2/exiv2

tiff files with large tags are destroyed on metadata update.

freee-d opened this issue · 0 comments

This test in tiffvisitor_int.cpp at line 1257

    uint32_t count = getULong(p, byteOrder());
    if (count >= 0x10000000) {
#ifndef SUPPRESS_WARNINGS
      EXV_ERROR << "Directory " << groupName(object->group()) << ", entry 0x" << std::setw(4) << std::setfill('0')
                << std::hex << object->tag() << " has invalid size " << std::dec << count << "*" << typeSize
                << "; skipping entry.\n";
#endif

Does nothing useful. It ignores and so removes on file update large tags. Photoshop can easily create tiff tiles with tag 37724 exceeding this test limit. Such files are destroyed on update by exiv2.