Commit e6c5bf46c4fa3e3738a2ed0896ce33fc270e0cac

Cosmin Truta 2023-06-21T16:16:07

Ensure that only one eXIf chunk is written in the entire datastream EXIF data can be stored in an eXIf chunk before IDAT, or after IDAT, but the entire PNG datastream may contain one eXIf chunk at most. Introduce the private mode flag PNG_WROTE_eXIf, which is meant to be used like the PNG_WROTE_tIME flag. The eXIf chunk and the tIME chunk have the same ordering rules (i.e. no constraints are imposed), and the same multiplicity rules (i.e. no multiples are allowed), and they should be initialized and checked using the same algorithm. This fixes commit cd03aaf7bf0e0c748b8c6cb34a56b402b40d61d0, previously reverted in 3d57708c9166419b7f5e0bbda2f7a2149112c844. Reported-by: Ben Bullock <benkasminbullock@gmail.com>