GraphicsMagick: 21 new changesets
GraphicsMagick Commits <[email protected]> Wed, 10 Jan 2024 09:57:01 -0600
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.1656.1704902237.19238.graphicsmagick-commit@lists.sourceforge.net> |
changeset 4c91b5aa3973 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=4c91b5aa3973 summary: JXL: Improve JXL reader/writer exception information. changeset 4a5d4a4dd19d in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=4a5d4a4dd19d summary: configure.ac: Check libheif for heif_context_set_maximum_image_size_limit() changeset b090984fe621 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=b090984fe621 summary: HEIF: Support setting image width limit changeset 825bf7c4cfa1 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=825bf7c4cfa1 summary: Update libtiff to 4.5.1 changeset ba9f79d141b6 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=ba9f79d141b6 summary: tiff/ Update libtiff to 4.5.1. changeset 4c352d61deca in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=4c352d61deca summary: Fix LFS check for autoconf-2.72 (ac_cv_sys_file_offset_bits deprecated/removed). changeset 75981441177c in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=75981441177c summary: NEWS.txt: Update the news as of December 28, 2023 changeset 3013ed441d4c in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=3013ed441d4c summary: magick/resource.c: Add a resource 'highwater' value which is updated to the maximum resources used for that resource type. Trace the highwater values when resource tracing is enabled. changeset 923480791c9f in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=923480791c9f summary: magick/resource-private.h: New header file to contain private definitions pertaining to resource allocation changeset 0fe9c8a472f6 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=0fe9c8a472f6 summary: _UpdateMagickResourceHighwater(): New private function to support updating highwater values where it otherwise does not naturally happen. changeset f12841f47ab3 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=f12841f47ab3 summary: Remove curl bandwidth submission limit. changeset ad2c4fc5c8a8 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=ad2c4fc5c8a8 summary: Change Coverity email address to one which works. changeset 775ef3aa3a0d in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=775ef3aa3a0d summary: tiff/libtiff/tiffconf.h: Fix path to webp/types.h changeset 89f0991bd3eb in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=89f0991bd3eb summary: Exclude more tiff/port files changeset 79c00a3ccfc8 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=79c00a3ccfc8 summary: VisualMagick/tiff/LIBRARY.txt: Exclude more tiff/port files changeset 10e3c1d29e02 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=10e3c1d29e02 summary: coders/wpg.c Make two functions "EnsureNextImage()" and "LoadPaletteRec()" static. changeset b5a66dcf5800 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=b5a66dcf5800 summary: coders/tiff.c Last changes pushed. changeset 26624e875cdb in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=26624e875cdb summary: coders/tiff.c Extract EXIFIFD part from EXIF profile. changeset 5ce6abd67588 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=5ce6abd67588 summary: coders/tiff.c Fix TIFF_RATIONAL fix for zero denominator. changeset cc77e897acde in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=cc77e897acde summary: fuzzing/oss-fuzz-build.sh: Skip missing libheif optional dependencies in oss-fuzz build. changeset 2751bfeaf95d in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=2751bfeaf95d summary: TIFF: Change EXPERIMENTAL_EXIF_TAGS to a simple boolean. diffstat: ChangeLog | 84 + Makefile.am | 4 +- Makefile.in | 5 +- NEWS.txt | 17 +- VisualMagick/installer/inc/version.isx | 4 +- VisualMagick/tiff/LIBRARY.txt | 2 + coders/heif.c | 15 + coders/jxl.c | 42 +- coders/tiff.c | 258 +- coders/wpg.c | 4 +- configure | 4 +- configure.ac | 4 +- fuzzing/oss-fuzz-build.sh | 139 +- locale/C.mgk | 6 + magick/Makefile.am | 1 + magick/blob.c | 10 + magick/gm_messages.mc | 12 + magick/locale_c.h | 2240 +- magick/magick_config.h.in | 4 + magick/resource-private.h | 21 + magick/resource.c | 194 +- magick/resource.h | 6 +- magick/version.h | 4 +- tiff/CMakeLists.txt | 4 +- tiff/COPYRIGHT | 21 - tiff/ChangeLog | 664 + tiff/Makefile.vc | 57 - tiff/RELEASE-DATE | 2 +- tiff/SConstruct | 169 - tiff/VERSION | 2 +- tiff/cmake/FindDeflate.cmake | 15 +- tiff/cmake/FindJBIG.cmake | 2 +- tiff/cmake/FindLERC.cmake | 18 +- tiff/cmake/FindLibLZMA.cmake | 28 +- tiff/cmake/FindWebP.cmake | 20 +- tiff/cmake/FindZSTD.cmake | 2 +- tiff/cmake/LZMACodec.cmake | 3 +- tiff/cmake/PkgConfig.cmake | 10 +- tiff/cmake/ProcessorChecks.cmake | 11 - tiff/cmake/TiffConfig.cmake.in | 6 + tiff/cmake/ZSTDCodec.cmake | 8 + tiff/config/config.guess | 6 +- tiff/config/config.h.in | 3 - tiff/config/config.sub | 8 +- tiff/configure | 44 +- tiff/configure.ac | 22 +- tiff/configure.com | 1356 - tiff/contrib/addtiffo/tif_ovrcache.c | 9 +- tiff/doc/Makefile.am | 1 + tiff/doc/Makefile.in | 3 +- tiff/doc/addingtags.rst | 20 +- tiff/doc/functions/TIFFOpen.rst | 24 +- tiff/doc/functions/TIFFReadDirectory.rst | 1 + tiff/doc/functions/TIFFSetDirectory.rst | 24 +- tiff/doc/functions/TIFFSetTagExtender.rst | 6 + tiff/doc/functions/TIFFWriteDirectory.rst | 10 +- tiff/doc/functions/libtiff.rst | 327 +- tiff/doc/html-prebuilt/.buildinfo | 2 +- tiff/doc/html-prebuilt/_sources/addingtags.rst.txt | 20 +- tiff/doc/html-prebuilt/_sources/functions/TIFFOpen.rst.txt | 24 +- tiff/doc/html-prebuilt/_sources/functions/TIFFReadDirectory.rst.txt | 1 + tiff/doc/html-prebuilt/_sources/functions/TIFFSetDirectory.rst.txt | 24 +- tiff/doc/html-prebuilt/_sources/functions/TIFFSetTagExtender.rst.txt | 6 + tiff/doc/html-prebuilt/_sources/functions/TIFFWriteDirectory.rst.txt | 10 +- tiff/doc/html-prebuilt/_sources/functions/libtiff.rst.txt | 327 +- tiff/doc/html-prebuilt/_sources/index.rst.txt | 13 +- tiff/doc/html-prebuilt/_sources/internals.rst.txt | 8 +- tiff/doc/html-prebuilt/_sources/multi_page.rst.txt | 213 + tiff/doc/html-prebuilt/_sources/releases/index.rst.txt | 1 + tiff/doc/html-prebuilt/_sources/releases/v4.5.1.rst.txt | 177 + tiff/doc/html-prebuilt/_sources/specification/coverage.rst.txt | 1217 +- tiff/doc/html-prebuilt/_sources/terms.rst.txt | 25 + tiff/doc/html-prebuilt/_static/_sphinx_javascript_frameworks_compat.js | 134 - tiff/doc/html-prebuilt/_static/basic.css | 52 +- tiff/doc/html-prebuilt/_static/doctools.js | 2 +- tiff/doc/html-prebuilt/_static/documentation_options.js | 2 +- tiff/doc/html-prebuilt/_static/jquery-3.6.0.js | 10881 ---------- tiff/doc/html-prebuilt/_static/jquery.js | 2 - tiff/doc/html-prebuilt/_static/language_data.js | 2 +- tiff/doc/html-prebuilt/_static/searchtools.js | 2 +- tiff/doc/html-prebuilt/_static/sphinxdoc.css | 5 +- tiff/doc/html-prebuilt/_static/underscore-1.13.1.js | 2042 - tiff/doc/html-prebuilt/_static/underscore.js | 6 - tiff/doc/html-prebuilt/addingtags.html | 171 +- tiff/doc/html-prebuilt/build.html | 225 +- tiff/doc/html-prebuilt/contrib.html | 25 +- tiff/doc/html-prebuilt/functions.html | 29 +- tiff/doc/html-prebuilt/functions/TIFFAccessTagMethods.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFClientInfo.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFClose.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFCreateDirectory.html | 41 +- tiff/doc/html-prebuilt/functions/TIFFCustomDirectory.html | 77 +- tiff/doc/html-prebuilt/functions/TIFFCustomTagList.html | 41 +- tiff/doc/html-prebuilt/functions/TIFFDataWidth.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFDeferStrileArrayWriting.html | 57 +- tiff/doc/html-prebuilt/functions/TIFFError.html | 43 +- tiff/doc/html-prebuilt/functions/TIFFFieldDataType.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFFieldName.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFFieldPassCount.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFFieldQuery.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFFieldReadCount.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFFieldTag.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFFieldWriteCount.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFFlush.html | 41 +- tiff/doc/html-prebuilt/functions/TIFFGetField.html | 69 +- tiff/doc/html-prebuilt/functions/TIFFMergeFieldInfo.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFOpen.html | 69 +- tiff/doc/html-prebuilt/functions/TIFFOpenOptions.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFPrintDirectory.html | 50 +- tiff/doc/html-prebuilt/functions/TIFFProcFunctions.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFRGBAImage.html | 87 +- tiff/doc/html-prebuilt/functions/TIFFReadDirectory.html | 46 +- tiff/doc/html-prebuilt/functions/TIFFReadEncodedStrip.html | 45 +- tiff/doc/html-prebuilt/functions/TIFFReadEncodedTile.html | 45 +- tiff/doc/html-prebuilt/functions/TIFFReadFromUserBuffer.html | 41 +- tiff/doc/html-prebuilt/functions/TIFFReadRGBAImage.html | 45 +- tiff/doc/html-prebuilt/functions/TIFFReadRGBAStrip.html | 45 +- tiff/doc/html-prebuilt/functions/TIFFReadRGBATile.html | 45 +- tiff/doc/html-prebuilt/functions/TIFFReadRawStrip.html | 41 +- tiff/doc/html-prebuilt/functions/TIFFReadRawTile.html | 41 +- tiff/doc/html-prebuilt/functions/TIFFReadScanline.html | 49 +- tiff/doc/html-prebuilt/functions/TIFFReadTile.html | 45 +- tiff/doc/html-prebuilt/functions/TIFFSetDirectory.html | 64 +- tiff/doc/html-prebuilt/functions/TIFFSetField.html | 59 +- tiff/doc/html-prebuilt/functions/TIFFSetTagExtender.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFStrileQuery.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFWarning.html | 43 +- tiff/doc/html-prebuilt/functions/TIFFWriteDirectory.html | 51 +- tiff/doc/html-prebuilt/functions/TIFFWriteEncodedStrip.html | 45 +- tiff/doc/html-prebuilt/functions/TIFFWriteEncodedTile.html | 45 +- tiff/doc/html-prebuilt/functions/TIFFWriteRawStrip.html | 45 +- tiff/doc/html-prebuilt/functions/TIFFWriteRawTile.html | 41 +- tiff/doc/html-prebuilt/functions/TIFFWriteScanline.html | 49 +- tiff/doc/html-prebuilt/functions/TIFFWriteTile.html | 41 +- tiff/doc/html-prebuilt/functions/TIFFbuffer.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFcodec.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFcolor.html | 243 +- tiff/doc/html-prebuilt/functions/TIFFmemory.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFquery.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFsize.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFstrip.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFswab.html | 37 +- tiff/doc/html-prebuilt/functions/TIFFtile.html | 37 +- tiff/doc/html-prebuilt/functions/_TIFFRewriteField.html | 37 +- tiff/doc/html-prebuilt/functions/_TIFFauxiliary.html | 33 +- tiff/doc/html-prebuilt/functions/libtiff.html | 495 +- tiff/doc/html-prebuilt/genindex.html | 116 +- tiff/doc/html-prebuilt/images.html | 19 +- tiff/doc/html-prebuilt/index.html | 35 +- tiff/doc/html-prebuilt/internals.html | 111 +- tiff/doc/html-prebuilt/libtiff.html | 469 +- tiff/doc/html-prebuilt/multi_page.html | 311 + tiff/doc/html-prebuilt/objects.inv | Bin tiff/doc/html-prebuilt/project/acknowledgements.html | 31 +- tiff/doc/html-prebuilt/project/bugs.html | 31 +- tiff/doc/html-prebuilt/project/index.html | 19 +- tiff/doc/html-prebuilt/project/license.html | 19 +- tiff/doc/html-prebuilt/project/mailinglist.html | 31 +- tiff/doc/html-prebuilt/releases/historical.html | 19 +- tiff/doc/html-prebuilt/releases/index.html | 30 +- tiff/doc/html-prebuilt/releases/v3.4beta007.html | 37 +- tiff/doc/html-prebuilt/releases/v3.4beta016.html | 41 +- tiff/doc/html-prebuilt/releases/v3.4beta018.html | 33 +- tiff/doc/html-prebuilt/releases/v3.4beta024.html | 41 +- tiff/doc/html-prebuilt/releases/v3.4beta028.html | 49 +- tiff/doc/html-prebuilt/releases/v3.4beta029.html | 33 +- tiff/doc/html-prebuilt/releases/v3.4beta031.html | 33 +- tiff/doc/html-prebuilt/releases/v3.4beta032.html | 37 +- tiff/doc/html-prebuilt/releases/v3.4beta033.html | 37 +- tiff/doc/html-prebuilt/releases/v3.4beta034.html | 29 +- tiff/doc/html-prebuilt/releases/v3.4beta035.html | 29 +- tiff/doc/html-prebuilt/releases/v3.4beta036.html | 33 +- tiff/doc/html-prebuilt/releases/v3.5.1.html | 33 +- tiff/doc/html-prebuilt/releases/v3.5.2.html | 33 +- tiff/doc/html-prebuilt/releases/v3.5.3.html | 37 +- tiff/doc/html-prebuilt/releases/v3.5.4.html | 33 +- tiff/doc/html-prebuilt/releases/v3.5.5.html | 37 +- tiff/doc/html-prebuilt/releases/v3.5.6beta.html | 41 +- tiff/doc/html-prebuilt/releases/v3.5.7.html | 43 +- tiff/doc/html-prebuilt/releases/v3.6.0.html | 49 +- tiff/doc/html-prebuilt/releases/v3.6.1.html | 45 +- tiff/doc/html-prebuilt/releases/v3.7.0.html | 45 +- tiff/doc/html-prebuilt/releases/v3.7.0alpha.html | 45 +- tiff/doc/html-prebuilt/releases/v3.7.0beta.html | 45 +- tiff/doc/html-prebuilt/releases/v3.7.0beta2.html | 45 +- tiff/doc/html-prebuilt/releases/v3.7.1.html | 41 +- tiff/doc/html-prebuilt/releases/v3.7.2.html | 41 +- tiff/doc/html-prebuilt/releases/v3.7.3.html | 41 +- tiff/doc/html-prebuilt/releases/v3.7.4.html | 41 +- tiff/doc/html-prebuilt/releases/v3.8.0.html | 41 +- tiff/doc/html-prebuilt/releases/v3.8.1.html | 41 +- tiff/doc/html-prebuilt/releases/v3.8.2.html | 41 +- tiff/doc/html-prebuilt/releases/v3.9.0.html | 41 +- tiff/doc/html-prebuilt/releases/v3.9.0beta.html | 41 +- tiff/doc/html-prebuilt/releases/v3.9.1.html | 41 +- tiff/doc/html-prebuilt/releases/v3.9.2.html | 41 +- tiff/doc/html-prebuilt/releases/v3.9.3.html | 41 +- tiff/doc/html-prebuilt/releases/v3.9.4.html | 41 +- tiff/doc/html-prebuilt/releases/v3.9.5.html | 41 +- tiff/doc/html-prebuilt/releases/v4.0.0.html | 41 +- tiff/doc/html-prebuilt/releases/v4.0.1.html | 41 +- tiff/doc/html-prebuilt/releases/v4.0.10.html | 45 +- tiff/doc/html-prebuilt/releases/v4.0.2.html | 41 +- tiff/doc/html-prebuilt/releases/v4.0.3.html | 41 +- tiff/doc/html-prebuilt/releases/v4.0.4.html | 41 +- tiff/doc/html-prebuilt/releases/v4.0.4beta.html | 41 +- tiff/doc/html-prebuilt/releases/v4.0.5.html | 41 +- tiff/doc/html-prebuilt/releases/v4.0.6.html | 41 +- tiff/doc/html-prebuilt/releases/v4.0.7.html | 41 +- tiff/doc/html-prebuilt/releases/v4.0.8.html | 41 +- tiff/doc/html-prebuilt/releases/v4.0.9.html | 41 +- tiff/doc/html-prebuilt/releases/v4.1.0.html | 41 +- tiff/doc/html-prebuilt/releases/v4.2.0.html | 41 +- tiff/doc/html-prebuilt/releases/v4.3.0.html | 41 +- tiff/doc/html-prebuilt/releases/v4.4.0.html | 41 +- tiff/doc/html-prebuilt/releases/v4.5.0.html | 51 +- tiff/doc/html-prebuilt/releases/v4.5.1.html | 271 + tiff/doc/html-prebuilt/search.html | 12 +- tiff/doc/html-prebuilt/searchindex.js | 2 +- tiff/doc/html-prebuilt/specification/bigtiff.html | 43 +- tiff/doc/html-prebuilt/specification/coverage-bigtiff.html | 25 +- tiff/doc/html-prebuilt/specification/coverage.html | 1315 +- tiff/doc/html-prebuilt/specification/index.html | 19 +- tiff/doc/html-prebuilt/specification/technote2.html | 83 +- tiff/doc/html-prebuilt/terms.html | 41 +- tiff/doc/html-prebuilt/tools.html | 43 +- tiff/doc/html-prebuilt/tools/fax2ps.html | 53 +- tiff/doc/html-prebuilt/tools/fax2tiff.html | 85 +- tiff/doc/html-prebuilt/tools/pal2rgb.html | 45 +- tiff/doc/html-prebuilt/tools/ppm2tiff.html | 31 +- tiff/doc/html-prebuilt/tools/raw2tiff.html | 59 +- tiff/doc/html-prebuilt/tools/rgb2ycbcr.html | 35 +- tiff/doc/html-prebuilt/tools/thumbnail.html | 43 +- tiff/doc/html-prebuilt/tools/tiff2bw.html | 39 +- tiff/doc/html-prebuilt/tools/tiff2pdf.html | 51 +- tiff/doc/html-prebuilt/tools/tiff2ps.html | 61 +- tiff/doc/html-prebuilt/tools/tiff2rgba.html | 37 +- tiff/doc/html-prebuilt/tools/tiffcmp.html | 39 +- tiff/doc/html-prebuilt/tools/tiffcp.html | 67 +- tiff/doc/html-prebuilt/tools/tiffcrop.html | 141 +- tiff/doc/html-prebuilt/tools/tiffdither.html | 43 +- tiff/doc/html-prebuilt/tools/tiffdump.html | 35 +- tiff/doc/html-prebuilt/tools/tiffgt.html | 51 +- tiff/doc/html-prebuilt/tools/tiffinfo.html | 45 +- tiff/doc/html-prebuilt/tools/tiffmedian.html | 39 +- tiff/doc/html-prebuilt/tools/tiffset.html | 51 +- tiff/doc/html-prebuilt/tools/tiffsplit.html | 43 +- tiff/doc/index.rst | 13 +- tiff/doc/internals.rst | 8 +- tiff/doc/man-prebuilt/TIFFAccessTagMethods.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFClientInfo.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFClose.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFCreateDirectory.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFCustomDirectory.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFCustomTagList.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFDataWidth.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFDeferStrileArrayWriting.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFError.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFFieldDataType.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFFieldName.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFFieldPassCount.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFFieldQuery.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFFieldReadCount.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFFieldTag.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFFieldWriteCount.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFFlush.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFGetField.3tiff | 10 +- tiff/doc/man-prebuilt/TIFFMergeFieldInfo.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFOpen.3tiff | 43 +- tiff/doc/man-prebuilt/TIFFPrintDirectory.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFProcFunctions.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFRGBAImage.3tiff | 30 +- tiff/doc/man-prebuilt/TIFFReadDirectory.3tiff | 31 +- tiff/doc/man-prebuilt/TIFFReadEncodedStrip.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFReadEncodedTile.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFReadFromUserBuffer.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFReadRGBAImage.3tiff | 30 +- tiff/doc/man-prebuilt/TIFFReadRGBAStrip.3tiff | 30 +- tiff/doc/man-prebuilt/TIFFReadRGBATile.3tiff | 30 +- tiff/doc/man-prebuilt/TIFFReadRawStrip.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFReadRawTile.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFReadScanline.3tiff | 8 +- tiff/doc/man-prebuilt/TIFFReadTile.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFSetDirectory.3tiff | 35 +- tiff/doc/man-prebuilt/TIFFSetField.3tiff | 12 +- tiff/doc/man-prebuilt/TIFFSetTagExtender.3tiff | 15 +- tiff/doc/man-prebuilt/TIFFStrileQuery.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFWarning.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFWriteDirectory.3tiff | 36 +- tiff/doc/man-prebuilt/TIFFWriteEncodedStrip.3tiff | 12 +- tiff/doc/man-prebuilt/TIFFWriteEncodedTile.3tiff | 12 +- tiff/doc/man-prebuilt/TIFFWriteRawStrip.3tiff | 12 +- tiff/doc/man-prebuilt/TIFFWriteRawTile.3tiff | 10 +- tiff/doc/man-prebuilt/TIFFWriteScanline.3tiff | 18 +- tiff/doc/man-prebuilt/TIFFWriteTile.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFbuffer.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFcodec.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFcolor.3tiff | 18 +- tiff/doc/man-prebuilt/TIFFmemory.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFquery.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFsize.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFstrip.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFswab.3tiff | 6 +- tiff/doc/man-prebuilt/TIFFtile.3tiff | 6 +- tiff/doc/man-prebuilt/_TIFFRewriteField.3tiff | 6 +- tiff/doc/man-prebuilt/_TIFFauxiliary.3tiff | 6 +- tiff/doc/man-prebuilt/fax2ps.1 | 8 +- tiff/doc/man-prebuilt/fax2tiff.1 | 32 +- tiff/doc/man-prebuilt/libtiff.3tiff | 749 +- tiff/doc/man-prebuilt/pal2rgb.1 | 8 +- tiff/doc/man-prebuilt/ppm2tiff.1 | 6 +- tiff/doc/man-prebuilt/raw2tiff.1 | 10 +- tiff/doc/man-prebuilt/rgb2ycbcr.1 | 6 +- tiff/doc/man-prebuilt/thumbnail.1 | 8 +- tiff/doc/man-prebuilt/tiff2bw.1 | 6 +- tiff/doc/man-prebuilt/tiff2pdf.1 | 10 +- tiff/doc/man-prebuilt/tiff2ps.1 | 6 +- tiff/doc/man-prebuilt/tiff2rgba.1 | 6 +- tiff/doc/man-prebuilt/tiffcmp.1 | 6 +- tiff/doc/man-prebuilt/tiffcp.1 | 8 +- tiff/doc/man-prebuilt/tiffcrop.1 | 8 +- tiff/doc/man-prebuilt/tiffdither.1 | 6 +- tiff/doc/man-prebuilt/tiffdump.1 | 8 +- tiff/doc/man-prebuilt/tiffgt.1 | 8 +- tiff/doc/man-prebuilt/tiffinfo.1 | 6 +- tiff/doc/man-prebuilt/tiffmedian.1 | 10 +- tiff/doc/man-prebuilt/tiffset.1 | 6 +- tiff/doc/man-prebuilt/tiffsplit.1 | 10 +- tiff/doc/releases/index.rst | 1 + tiff/doc/releases/v4.5.1.rst | 177 + tiff/doc/specification/coverage.rst | 1217 +- tiff/doc/terms.rst | 25 + tiff/libtiff/CMakeLists.txt | 26 +- tiff/libtiff/Makefile.am | 3 +- tiff/libtiff/Makefile.in | 4 +- tiff/libtiff/tif_close.c | 32 +- tiff/libtiff/tif_config.h | 2 +- tiff/libtiff/tif_config.h.cmake.in | 8 + tiff/libtiff/tif_config.h.in | 8 + tiff/libtiff/tif_dir.c | 129 +- tiff/libtiff/tif_dir.h | 12 +- tiff/libtiff/tif_dirinfo.c | 983 +- tiff/libtiff/tif_dirread.c | 213 +- tiff/libtiff/tif_dirwrite.c | 13 +- tiff/libtiff/tif_fax3.c | 3 +- tiff/libtiff/tif_fax3sm.c | 1 - tiff/libtiff/tif_getimage.c | 4 +- tiff/libtiff/tif_hash_set.c | 29 +- tiff/libtiff/tif_hash_set.h | 4 +- tiff/libtiff/tif_lerc.c | 2 +- tiff/libtiff/tif_luv.c | 7 + tiff/libtiff/tif_lzw.c | 14 +- tiff/libtiff/tif_ojpeg.c | 3 + tiff/libtiff/tif_open.c | 8 +- tiff/libtiff/tif_win32.c | 4 +- tiff/libtiff/tif_win32_versioninfo.rc | 51 + tiff/libtiff/tiff.h | 1037 +- tiff/libtiff/tiffconf.h | 3 + tiff/libtiff/tiffconf.h.cmake.in | 21 +- tiff/libtiff/tiffconf.h.in | 21 +- tiff/libtiff/tiffio.h | 6 + tiff/libtiff/tiffiop.h | 15 +- tiff/libtiff/tiffvers.h | 6 +- tiff/port/Makefile.vc | 43 - tiff/port/libport.h | 2 +- tiff/port/libport_config.h | 12 - tiff/test/CMakeLists.txt | 159 +- tiff/test/Makefile.am | 13 +- tiff/test/Makefile.in | 314 +- tiff/test/custom_dir_EXIF_231.c | 2 +- tiff/test/images/test_ifd_loop_subifd.tif | Bin tiff/test/images/testfax3_bug_513.tiff | Bin tiff/test/rational_precision2double.c | 2 +- tiff/test/refs/o-testfax3_bug_513.tiff | Bin tiff/test/test_directory.c | 884 +- tiff/test/test_ifd_loop_detection.c | 169 +- tiff/test/test_open_options.c | 22 +- tiff/test/testfax3_bug_513.sh | 24 + tiff/tools/CMakeLists.txt | 48 +- tiff/tools/Makefile.am | 3 +- tiff/tools/Makefile.in | 3 +- tiff/tools/fax2ps.c | 6 +- tiff/tools/tif_tools_versioninfo.rc | 51 + tiff/tools/tiffcrop.c | 261 +- tiff/tools/tiffmedian.c | 7 +- tiff/tools/tiffset.c | 84 +- www/Changelog.html | 93 + www/NEWS.html | 16 +- www/api/resource.html | 4 +- 389 files changed, 14686 insertions(+), 24518 deletions(-) diffs (truncated from 58604 to 500 lines): diff -r 6b7dcae6cc61 -r 2751bfeaf95d ChangeLog --- a/ChangeLog Wed Dec 20 13:33:20 2023 -0600 +++ b/ChangeLog Wed Jan 10 09:56:37 2024 -0600 @@ -1,3 +1,87 @@ +2024-01-10 Bob Friesenhahn <[email protected]> + + * coders/tiff.c (EXPERIMENTAL_EXIF_TAGS): Change + EXPERIMENTAL_EXIF_TAGS to a simple boolean (rather than an ifdef) + and default it to 0. This needs to be in place until the TIFF + writer no longer crashes. + + * fuzzing/oss-fuzz-build.sh: Skip missing libheif optional + dependencies in oss-fuzz build. + +2024-01-07 Fojtik Jaroslav <[email protected]> + + coders/tiff.c Fix TIFF_RATIONAL - Two LONGs: the first represents + the numerator of a fraction, the second the denominator. + +2024-01-06 Fojtik Jaroslav <[email protected]> + + coders/tiff.c Extract EXIFIFD part from EXIF profile. + +2024-01-03 Fojtik Jaroslav <[email protected]> + + coders/wpg.c Make two functions "EnsureNextImage()" and + "LoadPaletteRec()" static. + +2024-01-02 Fojtik Jaroslav <[email protected]> + + * VisualMagick/tiff/LIBRARY.txt: Exclude more tiff/port files. + +2024-01-01 Fojtik Jaroslav <[email protected]> + + * tiff/libtiff/tiffconf.h: Fix path to webp/types.h. + +2023-12-30 Bob Friesenhahn <[email protected]> + + * NEWS.txt: Update the news as of December 30, 2023. + + * magick/resource.c (_UpdateMagickResourceHighwater): New private + function to support updating highwater values where it otherwise + does not naturally happen. The highwater values represent the + result of successful requests so they may be used to evaluate the + resource limit requirements of a particular request. + + * magick/resource-private.h: New header file to contain private + definitions pertaining to resource allocation. + +2023-12-29 Bob Friesenhahn <[email protected]> + + * magick/resource.c: Add a resource 'highwater' value which is + updated to the maximum resources used for that resource type. + This value is currently only reliably updated for SummationLimit + LimitType. Trace the highwater values when resource tracing is + enabled. + +2023-12-28 Bob Friesenhahn <[email protected]> + + * NEWS.txt: Update the news as of December 28, 2023. + + * configure.ac: fixup LFS check for autoconf-2.72. Patch by Sam + James <[email protected]> + + For the 'other' case, we were using the value of + ac_cv_sys_file_offset_bits for -D_FILE_OFFSET_BITS to pass down + into the Perl module build, but autoconf-2.72 drops the use of + ac_cv_sys_file_offset_bits in + cf09f48841b66fe76f606dd6018bb3a93242a7c9, so this ends up defining + '-D_FILE_OFFSET_BITS=' which then breaks the build. + + I've just added a hack to preserve the old behaviour to avoid + passing a blank value. + +2023-12-27 Fojtik Jaroslav <[email protected]> + + * tiff/ Update libtiff to 4.5.1. + +2023-12-21 Bob Friesenhahn <[email protected]> + + * coders/heif.c (ReadHEIFImage): Support setting image width + limit. + + * configure.ac: Check libheif for + heif_context_set_maximum_image_size_limit(). + + * coders/jxl.c: Improve JXL reader/writer exception information. + 2023-12-20 Bob Friesenhahn <[email protected]> * NEWS.txt: Update with news since the last release. diff -r 6b7dcae6cc61 -r 2751bfeaf95d Makefile.am --- a/Makefile.am Wed Dec 20 13:33:20 2023 -0600 +++ b/Makefile.am Wed Jan 10 09:56:37 2024 -0600 @@ -32,7 +32,7 @@ # FIXME: Could use info from /etc/os-release, or output from # lsb_release. # New URL is https://scan.coverity.com/projects/graphicsmagick?tab=overview [email protected] [email protected] COVERITY_TARBALL=GraphicsMagick.xz COVERITY_VERSION=snapshot-@PACKAGE_CHANGE_DATE@ COVERITY_DESCRIPTION='Ubuntu Q@QuantumDepth@' @@ -447,7 +447,7 @@ $(RM) -rf $(COVERITY_COV_INT) cov-build --dir $(COVERITY_COV_INT) $(MAKE) tar caf $(COVERITY_TARBALL) cov-int - curl --limit-rate 34K \ + curl \ --form token=`cat $$HOME/.coverity_key_gm` \ --form email=$(COVERITY_EMAIL) \ --form file=@$(COVERITY_TARBALL) \ diff -r 6b7dcae6cc61 -r 2751bfeaf95d Makefile.in --- a/Makefile.in Wed Dec 20 13:33:20 2023 -0600 +++ b/Makefile.in Wed Jan 10 09:56:37 2024 -0600 @@ -2790,7 +2790,7 @@ # FIXME: Could use info from /etc/os-release, or output from # lsb_release. # New URL is https://scan.coverity.com/projects/graphicsmagick?tab=overview -COVERITY_EMAIL = [email protected] +COVERITY_EMAIL = [email protected] COVERITY_TARBALL = GraphicsMagick.xz COVERITY_VERSION = snapshot-@PACKAGE_CHANGE_DATE@ COVERITY_DESCRIPTION = 'Ubuntu Q@QuantumDepth@' @@ -4088,6 +4088,7 @@ magick/random-private.h \ magick/registry-private.h \ magick/render-private.h \ + magick/resource-private.h \ magick/semaphore.h \ magick/spinlock.h \ magick/static.h \ @@ -11600,7 +11601,7 @@ $(RM) -rf $(COVERITY_COV_INT) cov-build --dir $(COVERITY_COV_INT) $(MAKE) tar caf $(COVERITY_TARBALL) cov-int - curl --limit-rate 34K \ + curl \ --form token=`cat $$HOME/.coverity_key_gm` \ --form email=$(COVERITY_EMAIL) \ --form file=@$(COVERITY_TARBALL) \ diff -r 6b7dcae6cc61 -r 2751bfeaf95d NEWS.txt --- a/NEWS.txt Wed Dec 20 13:33:20 2023 -0600 +++ b/NEWS.txt Wed Jan 10 09:56:37 2024 -0600 @@ -19,7 +19,7 @@ .. contents:: :local: -1.3.43 (??? ???, 202?) +1.3.43 (??? ???, 2024) =========================== Special Issues: @@ -68,13 +68,22 @@ uncompressed bytes written. The behavior when the limit is hit is similar to an unexpected write error, as if the disk is full. +* Resource limit highwater: Resource highwater values are maintained + for successful resource requests and final values are traced + via -debug resource' at the end of program execution. These values + may be used to understand the most restrictive resource limits which + may be applied while still achieving successful operation. + * BMP: Support BI_PNG compression (PNG inside BMP). * BMP: Support reading 64 bits-per-pixel. * BMP: Support reading 48 bits-per-pixel. -* HEIF: Call heif_init() and heif_deinit() if they are available. +* HEIF: Call heif_init() and heif_deinit() if they are + available. Support setting image width limit. + +* JXL: Improve JXL reader/writer exception information. * TIFF: Remove miniswhite/minisblack prohibitions when using Group3 and Group4 compression in order to allow using inverted photometric @@ -87,7 +96,7 @@ Windows Delegate Updates/Additions: -* None. +* libtiff: Update bundled libtiff sources to version 4.5.1. Build Changes: @@ -116,6 +125,8 @@ * Autotools-based build: No longer search for (and use) libtrio by default. The user now needs to request using it. +* Autotools-based build: Fixes for autoconf-2.72. + * oss-fuzz build: The fuzzing/oss-fuzz-build.sh is re-written in order to support almost all possible dependency libraries. For example, JXL and HEIF (with HEIC and AVIF reader support) are now included in diff -r 6b7dcae6cc61 -r 2751bfeaf95d VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Wed Dec 20 13:33:20 2023 -0600 +++ b/VisualMagick/installer/inc/version.isx Wed Jan 10 09:56:37 2024 -0600 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020231220" -#define public MagickPackageReleaseDate "snapshot-20231220" +#define public MagickPackageVersionAddendum ".020240110" +#define public MagickPackageReleaseDate "snapshot-20240110" diff -r 6b7dcae6cc61 -r 2751bfeaf95d VisualMagick/tiff/LIBRARY.txt --- a/VisualMagick/tiff/LIBRARY.txt Wed Dec 20 13:33:20 2023 -0600 +++ b/VisualMagick/tiff/LIBRARY.txt Wed Jan 10 09:56:37 2024 -0600 @@ -39,3 +39,5 @@ EXCLUDE = strtoll.c EXCLUDE = strtoul.c EXCLUDE = strtoull.c +EXCLUDE = snprintf.c +EXCLUDE = tif_win32_versioninfo.rc diff -r 6b7dcae6cc61 -r 2751bfeaf95d coders/heif.c --- a/coders/heif.c Wed Dec 20 13:33:20 2023 -0600 +++ b/coders/heif.c Wed Jan 10 09:56:37 2024 -0600 @@ -30,6 +30,7 @@ #include "magick/monitor.h" #include "magick/pixel_cache.h" #include "magick/profile.h" +#include "magick/resource.h" #include "magick/utility.h" #include "magick/resource.h" @@ -540,6 +541,20 @@ /* Init HEIF-Decoder handles */ heif=heif_context_alloc(); +#if defined(HAVE_HEIF_CONTEXT_SET_MAXIMUM_IMAGE_SIZE_LIMIT) + { + /* Add an image size limit */ + magick_int64_t width_limit = GetMagickResourceLimit(WidthResource); + if (MagickResourceInfinity != width_limit) + { + if (width_limit > INT_MAX) + width_limit = INT_MAX; + heif_context_set_maximum_image_size_limit(heif, (int) width_limit); + } + } +#endif /* if defined(HAVE_HEIF_CONTEXT_SET_MAXIMUM_IMAGE_SIZE_LIMIT) */ + + /* FIXME: DEPRECATED: use heif_context_read_from_memory_without_copy() instead. */ heif_status=heif_context_read_from_memory(heif, in_buf, in_len, NULL); if (heif_status.code == heif_error_Unsupported_filetype || heif_status.code == heif_error_Unsupported_feature) diff -r 6b7dcae6cc61 -r 2751bfeaf95d coders/jxl.c --- a/coders/jxl.c Wed Dec 20 13:33:20 2023 -0600 +++ b/coders/jxl.c Wed Jan 10 09:56:37 2024 -0600 @@ -445,7 +445,7 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlDecoderCreate() failed"); - ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,image); + ThrowReaderException(CoderError,JXLDecoderAPIFailure,image); } /* Deliver image as-is. We provide autoOrient function if user requires it */ @@ -454,7 +454,7 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlDecoderSetKeepOrientation() failed"); - ThrowJXLReaderException(ResourceLimitError,MemoryAllocationFailed,image); + ThrowJXLReaderException(CoderError,JXLDecoderAPIFailure,image); } /* Apply any pre-multiplied alpha for us so we don't need to do it. */ @@ -463,7 +463,7 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlDecoderSetUnpremultiplyAlpha() failed"); - ThrowJXLReaderException(ResourceLimitError,MemoryAllocationFailed,image); + ThrowJXLReaderException(CoderError,JXLDecoderAPIFailure,image); } if(!image_info->ping) @@ -476,7 +476,7 @@ (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlThreadParallelRunnerCreate() failed (%"MAGICK_SIZE_T_F"u threads)", num_worker_threads); - ThrowJXLReaderException(ResourceLimitError,MemoryAllocationFailed,image); + ThrowJXLReaderException(CoderError,JXLDecoderAPIFailure,image); } if (JxlDecoderSetParallelRunner(jxl_decoder, JxlThreadParallelRunner, jxl_thread_runner) != JXL_DEC_SUCCESS) @@ -485,7 +485,7 @@ (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlDecoderSetParallelRunner() failed (%"MAGICK_SIZE_T_F"u) threads", num_worker_threads); - ThrowJXLReaderException(ResourceLimitError,MemoryAllocationFailed,image); + ThrowJXLReaderException(CoderError,JXLDecoderAPIFailure,image); } } @@ -502,7 +502,7 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlDecoderSubscribeEvents() failed"); - ThrowJXLReaderException(ResourceLimitError,MemoryAllocationFailed,image); + ThrowJXLReaderException(CoderError,JXLDecoderAPIFailure,image); } in_buf=MagickAllocateResourceLimitedArray(unsigned char *,in_len,sizeof(*in_buf)); @@ -1248,7 +1248,7 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlEncoderCreate() failure"); - ThrowWriterException(ResourceLimitError,MemoryAllocationFailed,image); + ThrowWriterException(CoderError,JXLEncoderAPIFailure,image); } /* Use the same number of threads as used for OpenMP */ @@ -1262,7 +1262,7 @@ (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlThreadParallelRunnerCreate() failed (%"MAGICK_SIZE_T_F"u) threads", num_worker_threads); - ThrowJXLWriterException(ResourceLimitError,MemoryAllocationFailed,image); + ThrowJXLWriterException(CoderError,JXLEncoderAPIFailure,image); } if (JxlEncoderSetParallelRunner(jxl_encoder, JxlThreadParallelRunner, jxl_thread_runner) != JXL_ENC_SUCCESS) @@ -1271,7 +1271,7 @@ (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlDecoderSetParallelRunner() failed (%"MAGICK_SIZE_T_F"u) threads", num_worker_threads); - ThrowJXLWriterException(ResourceLimitError,MemoryAllocationFailed,image); + ThrowJXLWriterException(CoderError,JXLEncoderAPIFailure,image); } } @@ -1377,14 +1377,14 @@ { /* TODO better error codes */ if (jxl_status == JXL_ENC_ERROR) - ThrowJXLWriterException(CoderError,NoDataReturned,image); + ThrowJXLWriterException(CoderError,JXLEncoderAPIFailure,image); #if JPEGXL_NUMERIC_VERSION < JPEGXL_COMPUTE_NUMERIC_VERSION(0,9,0) /* JXL_ENC_NOT_SUPPORTED was removed for 0.9.0, although API docs still mention it. */ else if (jxl_status == JXL_ENC_NOT_SUPPORTED) ThrowJXLWriterException(CoderError,UnsupportedBitsPerSample,image); #endif /* if JPEGXL_NUMERIC_VERSION < JPEGXL_COMPUTE_NUMERIC_VERSION(0,9,0) */ else - ThrowJXLWriterException(CoderFatalError,Default,image); + ThrowJXLWriterException(CoderError,JXLEncoderAPIFailure,image); } /* Set expected input colorspace */ @@ -1396,7 +1396,7 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlEncoderSetColorEncoding() failed"); - ThrowJXLWriterException(CoderFatalError,Default,image); + ThrowJXLWriterException(CoderError,JXLEncoderAPIFailure,image); } frame_settings = JxlEncoderFrameSettingsCreate(jxl_encoder, NULL); @@ -1407,7 +1407,7 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlEncoderSetFrameLossless() failed"); - ThrowJXLWriterException(CoderFatalError,Default,image); + ThrowJXLWriterException(CoderError,JXLEncoderAPIFailure,image); } } else @@ -1422,7 +1422,7 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlEncoderSetFrameDistance() failed"); - ThrowJXLWriterException(CoderFatalError,Default,image); + ThrowJXLWriterException(CoderError,JXLEncoderAPIFailure,image); } } else @@ -1434,7 +1434,7 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlEncoderSetFrameDistance() failed"); - ThrowJXLWriterException(CoderFatalError,Default,image); + ThrowJXLWriterException(CoderError,JXLEncoderAPIFailure,image); } } } @@ -1613,8 +1613,12 @@ p += export_info.bytes_exported; } + /* + This error is totally bogus but ExportImagePixelArea() should + have already set a more useful error. + */ if (status == MagickFail) - ThrowJXLWriterException(ResourceLimitError,MemoryAllocationFailed,image); + ThrowJXLWriterException(CoderError,ImageTypeNotSupported,image); } /* real encode */ @@ -1624,8 +1628,7 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlEncoderAddImageFrame() failed"); - /* TODO Better Error-code? */ - ThrowJXLWriterException(CoderError,NoDataReturned,image); + ThrowJXLWriterException(CoderError,JXLEncoderAPIFailure,image); } /* Close any input to the encoder. No further input of any kind may @@ -1662,8 +1665,7 @@ if (image->logging) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "JxlEncoderProcessOutput() failure"); - /* TODO Better Error-code? */ - ThrowJXLWriterException(CoderError,NoDataReturned,image); + ThrowJXLWriterException(CoderError,JXLEncoderAPIFailure,image); } status &= CloseBlob(image); diff -r 6b7dcae6cc61 -r 2751bfeaf95d coders/tiff.c --- a/coders/tiff.c Wed Dec 20 13:33:20 2023 -0600 +++ b/coders/tiff.c Wed Jan 10 09:56:37 2024 -0600 @@ -72,6 +72,10 @@ # include "zstd.h" # endif /* if defined(COMPRESSION_ZSTD) && defined(HasZSTD) */ +#if !defined(EXPERIMENTAL_EXIF_TAGS) +# define EXPERIMENTAL_EXIF_TAGS 0 +#endif /* if !defined(EXPERIMENTAL_EXIF_TAGS) */ + /* JPEG headers are needed in order to obtain BITS_IN_JSAMPLE */ @@ -4399,9 +4403,13 @@ #if defined(HasTIFF) -#if defined(EXPERIMENTAL_EXIF_TAGS) +#if EXPERIMENTAL_EXIF_TAGS #if TIFFLIB_VERSION >= 20120922 +#define FLAG_EXIF 1 +#define FLAG_GPS 2 +#define FLAG_BASE 4 + /* static TIFFField customFields[] = { {544, -1, -1, TIFF_LONG, 0, TIFF_SETGET_UINT32, @@ -4445,17 +4453,113 @@ } -static int AddExifFields(TIFF *tiff, const unsigned char *profile_data, size_t profile_length, MagickBool logging) +static int AddIFDExifFields(TIFF *tiff, const unsigned char *profile_data, const unsigned char *IFD_data, size_t profile_length, MagickBool logging, uint16_t Flags) { -const char EXIF[6] = {'E','x','i','f',0,0}; -uint32_t IFDpos; +uint32_t(*LD_UINT32)(const unsigned char *Mem); +uint16_t(*LD_UINT16)(const unsigned char *Mem); +const TIFFField *fip; uint16_t EntryNum; uint16_t Tag, Field; uint32_t Long2, Value; int FieldCount = 0; -uint32_t(*LD_UINT32)(const unsigned char *Mem); -uint16_t(*LD_UINT16)(const unsigned char *Mem); -const TIFFField *fip; + + if(*profile_data=='M') + { + LD_UINT32 = LD_UINT32_HI; + LD_UINT16 = LD_UINT16_HI; + } + else + { + if(*profile_data!='I') return 0; + LD_UINT32 = LD_UINT32_LO; + LD_UINT16 = LD_UINT16_LO; + + } + + do + { + if(profile_length-(IFD_data-profile_data) < 2) return 0; + EntryNum = LD_UINT16(IFD_data); + profile_length-=2; + if(profile_length-(IFD_data-profile_data) < EntryNum*12) return 0; + IFD_data+=2; + + while(EntryNum>0) + { + Tag = LD_UINT16(IFD_data); + Field = LD_UINT16(IFD_data+2); + Long2 = LD_UINT32(IFD_data+4); + Value = LD_UINT32(IFD_data+8); + + fip = TIFFFindField(tiff, Tag, TIFF_ANY); + if(logging) + (void)LogMagickEvent(CoderEvent,GetMagickModule(),"Extracted tag from EXIF %xh, Field %d, Long2 %d, val %d %s", + Tag, Field, Long2, Value, FipFieldName(fip)); +