Skip to content

tracker-extract: Check field type on IPTC data embedded in TIFFs

Carlos Garnacho requested to merge wip/carlosg/tiff-iptc into master

The field containing IPTC metadata can come either as TIFF_LONG (32-bit ints, endianness dependent), or TIFF_UNDEFINED (a byte string). We currently handle everything as TIFF_LONG, which may cause memory corruptions if we deal with a file where we must perform endianness swapping and receive non-long-aligned data.

Ensure to handle only these 2 types as it is defined for the TIFFTAG_RICHTIFFIPTC tag, and only perform byte swapping for non-byte data (i.e. TIFF_LONG).

This is more in line with what other (e.g. ImageMagick) do when dealing with byte-swapping and IPTC data.

Fixes: https://gitlab.gnome.org/GNOME/tracker/-/issues/364

Merge request reports