2023-06-04 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/topol.c: More strict check of proper blob data size.
2023-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/command.c (ConvertImageCommand): Skip MogrifyImages() if in ping mode. Addresses Sourceforge issue #704 "heap overflow in gm (magick/effect.c:4417 in SpreadImage)".
magick/effect.c (SpreadImage): Assure that offsets_index is in valid range. Reject request if radius is larger than image. Addresses SourceForge issue #705 "heap overflow in gm #2 (magick/effect.c:4405 in SpreadImage)".
2023-06-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/effect.c (GetBlurKernel): Use resource limited memory allocator for blur kernel. This plus MagickStrToD() updates addresses #703 "allocation-size-too-big in gm (magick/effect.c:797 in GetBlurKernel)".
magick/utility.c (MagickStrToD): Add infinity and nan checks.
magick/command.c (MogrifyImage): Assure that -set has arguments. Addresses SourceForge issue #701 "Segmentation Violation in gm (magick/attribute.c:324 in SetImageAttribute)".
magick/analyze.c (AllocateDepthMap): Use resource-limited memory allocator.
magick/operator.c (QuantumDepthCB): Janitorial cleanups.
2023-06-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/command.c (MogrifyImage): Validate the number of '-random-threshold' arguments. Addresses SourceForge issue #700 Segmentation Violation in gm (magick/utility.c:3399 in LocaleCompare)".
magick/montage.c (MontageImages): Report exception if tile geometry component is zero. Addresses SourceForge issue #699 "Floating Point Exception in gm (magick/montage.c:514 in MontageImages)".
2023-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/transform.c (ChopImage): Assure that chop image has valid dimensions. Addresses SourceForge issue #697 "Assertion 'image->columns != 0' failed in gm (RollImage at magick/transform.c:1532)" and issue #698 "Assertion 'image->rows != 0' failed (magick/transform.c:1533 at RollImage)".
2023-05-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/tiff.c (ReadTIFFImage): Require that TIFFTAG_EXTRASAMPLES be used appropriately to indicate the intention of extra channels. Otherwise extra samples beyond what is required by the photometric will be ignored.
2023-05-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/tiff.c (ReadTIFFImage): Stop promoting RGB image to associated alpha due to 4 channels until a solution is found which does not cause issues.
2023-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/tiff.c (ReadTIFFImage): Automate the collection of TIFF attributes. Fixes oss-fuzz issue 58754 "graphicsmagick:coder_BIGTIFF_fuzzer: Stack-buffer-overflow in _TIFFVGetField" and 58758 "graphicsmagick:coder_PTIF_fuzzer: Stack-buffer-overflow in _TIFFVGetField" which occur with the development version of libtiff.
2023-05-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/tiff.c (RegisterTIFFImage): Provide a note regarding supported compressions for this libtiff build.
utilities/tests/gen-tiff-images/genimages: Add support for writing uncompressed ("none"), rle, lzw, zip, zstd, and lzma compressed variants since these compressors do not have peculiar requirements. With this change 5568 files are generated!
coders/png.c (ReadMNGImage): Can not use interpolation for first pixel in MNG X_method 5. Fixes oss-fuzz issue 31109 "graphicsmagick:coder_MNG_fuzzer: Heap-buffer-overflow in ReadMNGImage" and oss-fuzz issue 58381 "graphicsmagick:coder_MNG_fuzzer: Heap-buffer-overflow in ReadMNGImage".
2023-05-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/tiff.c (ReadTIFFImage): Verify that the bits per sample, samples per pixel, and photometric are suitable for the claimed compressor.
coders/bmp.c (ReadBMPImage): Do not decode primaries or gamma unless colorspace is LCS_CALIBRATED_RGB.
2023-05-13 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/png.c: Expose gama value to the optional log.
2023-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
utilities/tests/gen-tiff-images/genimages: Write one-bit grey (monochrome) images. Write miniswhite images.
coders/tiff.c (WriteTIFFImage): Support '-define tiff:photometric=minisblack' and '-define tiff:photometric=miniswhite' to be able to adjust the sense used when writing bilevel TIFF images. Adjust the heuristics used to select 'miniswhite' to hopefully preserve the user's intent as much as possible, while obeying codec requirements.
2023-05-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
tests/rwfile.tap: Add TopoL to rwfile tests.
2023-05-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/topol.c (RegisterTOPOLImage): Set adjoin to MagickFalse.
2023-05-06 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/topol.c: Fix situation when GetBlobSize returns negative value.
2023-05-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/heif.c (ReadHEIFImage): Implemented Tobias Mark's idea for how ignore_transformations should be supported for older libheif versions.
coders/topol.c: Eliminate warnings and add some more error checks.
2023-05-05 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/topol.c: Fix memory leak.
2023-05-04 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/topol.c: Provide function IsTopoL.
2023-05-03 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/tests/runtest.bat Added checking for TopoL.
coders/topol.c: Added extension checking to function.
2023-05-02 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/topol.c: Fix a problem when filename contains garbage only. Reported as oss-fuzz-58544.
2023-04-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/heif.c (ReadHEIFImage): Change comments to C99 syntax. Try to fix compilation with version of libheif prior to version 1.9. Change to use -define heif:ignore-transformations to use same naming strategy as the other existing defines.
2023-04-30 Tobias Mark <tbsmark86@gmail.com>
coders/heif.c (ReadHEIFImage): HEIF: Fix reading images with rotation/transformation; added option to ignore them. SourceForge patch #70 "Fix Heif image with transformations".
doc/options.imdoc: Add documentation for -define heic:ignore-transformations.
2023-04-30 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/topol.c: Deallocate 'pixels' correctly, fix MEZ reindexing.
2023-04-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
www/download.rst: More properly describe how to use 'gpg --verify'.
2023-04-29 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/topol.c: First attempt to make a writer.
magick/blob.h magick/blob.c: New function WriteBlobLSBDouble.
2023-04-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/image.h (RoundDoubleToQuantumN): New macro to address NaN issues when converting a double to a Quantum. Use it where needed.
magick/import.c (ImportGrayQuantumType): If value is nan, then use 0.0. Addresses SourceForge issue #706 "Integer overflow, floating-point exception, pointer overflow in gm".
coders/viff.c (ReadVIFFImage): If value is nan, then use 0.0. Addresses SourceForge issue #706 "Integer overflow, floating-point exception, pointer overflow in gm".
coders/mat.c (InsertComplexDoubleRow): If computed f is nan, then use 0.0. Addresses SourceForge issue #708 "Undefined behavior while converting negative infinity to integer". (InsertComplexFloatRow): If computed f is nan, then use 0.0.
magick/attribute.c (GenerateEXIFAttribute): Assure that float and double values are suitably alligned. Addresses SourceForge issue #709 "Undefined behavior while loading a value of type float from an unaligned address".
coders/tiff.c (ReadTIFFImage): Validate that TIFFGetField() did return count and text rather than just relying on its return status. Addresses SourceForge issue #710 "Undefined behavior while passing a null pointer as an argument to a nonnull function.".
2023-04-26 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/tests/runtest.bat: Added new tests for all possible fileformats. XTRNIMAGE causes segfault - this should be fixed.
2023-04-25 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/tests/runtest.bat: Apply only filetests to MPC.
2023-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/command.c (BatchCommand): Implement simple Test Anything Protocol (TAP) test counting and "ok N"/"not ok N" messaging for 'gm batch' via the '-tap-mode on' option. This is still a work in progress, but is already useful.
2023-04-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
utilities/tests/convert-batch.tap: Added a TAP-like test script which is similar to convert.tap, but is not really a TAP test yet. This is to explore the concept of using 'gm batch' as part of TAP testing.
utilities/tests/convert-cmds.txt: Backslash-escape double-quoted filename.
2023-04-16 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/CMakeLists.txt: Add posibility to use CMake for configure.exe
VisualMagick/README.txt: Update description for building configure.exe
VisualMagick/configure/CStringEx.cpp, VisualMagick/configure/CStringEx.h: removed useless code.
2023-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/attribute.c (SetImageAttribute): Eliminate memory leak when handling attribute with key "EXIF:Orientation". (SourceForge issue #707 "memory leaks in gm").
2023-04-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/jpeg.c (WriteJPEGImage): Do not set image resolution if the values provided are outside of the valid range (SourceForge issue #706 test case 'bug4').
coders/rle.c (ReadRLEImage): Eliminate a unsigned offset overflow runtime error from UBSAN (SourceForge issue #706 test case 'bug5').
coders/png.c (WriteOnePNGImage): Address undefined behavior while converting floating point resolution to unsigned integer. (SourceForge issue #706 test case 'bug19').
magick/utility.c (GetGeometry): Improve geometry parser to validate that parsed double values do not underflow or overflow when cast to 'unsigned long' or 'long' types. (SourceForge issue #706 test case 'bug11').
coders/mpc.c (ReadMPCImage): If an attribute appears multiple times in the MPC header, only set it once.
coders/miff.c (ReadMIFFImage): If an attribute appears multiple times in the MIFF header, only set it once.
magick/attribute.c (SetImageAttribute): Fix bounds issue when concatenating string (SourceForge issue #706 test case 'bug11').
2023-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
utilities/tests/gen-tiff-images/genimages: Added a script to produce a large number of TIFF files (736 files!) using various sample depths and great many other permutations supportable by libtiff. This is both a technology demo of GraphicsMagick (and libtiff) as well as a way to generate interesting test inputs for other software. While much of this work existed previously, it is included with GraphicsMagick in response to Sebastian Rasmussen's post to the GM-help mailing list on March 24 regarding "A set of old TIFF sample files..?".
2023-04-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/profile-private.h: Added a new private implementation header file.
coders/png.c: EXIF header implementation details/refinements.
coders/webp.c: Add/remove the internally expected 6-byte JPEG APP1 "Exif00" header to/from the pristine Exif blob. Addresses SourceForge #696 "WebP Exif handling bug.
2023-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/jxl.c (ReadJXLImage): Fix JXL EXIF offset handling, and deal with any EOI marker. (From SourceForge patch #69 submitted by Milos Komarcevic).
coders/heif.c (ReadHEIFImage): Fix HEIF EXIF offset handling, and deal with any EOI marker. Also fix HEIF XMP parsing. (From SourceForge patch #69 submitted by Milos Komarcevic).
2023-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/identity.c (ReadIdentityImage): Return a PseudoClass image if possible.
coders/miff.c (ReadMIFFImage): With depth == 32, the range of image->colors is 1 to 65536.
2023-03-26 Fojtik Jaroslav <JaFojtik@yandex.com>
magick/nt_base.h Improve compatibility witholder versions of MSVC. *VisualMagick/configure/configure.rc Disable checkbox for MSVC6 format - it is not workable.
2023-03-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/resize.c (ResizeImage): Clarify HorizontalFilter()/VerticalFilter() loops.
2023-03-18 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/png.c There were 2 defects that prevented eXIf chunk to be read.
2023-03-18 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/png.c Variable "png_byte unused_chunks" should be const and not be placed on a stack.
2023-03-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/command.c (ConjureImageCommand): Properly check argument list when handling options. Addresses SourceForge issue #693 "Segmentation Violation in gm - SetImageAttribute function". (MogrifyImage): Improve operator parameter validation. Addresses SourceForge issue #694 "Segmentation Violation in gm (MagickStrToD function)". (MogrifyImage): Improve ordered-dither parameter validation. Addresses SourceForge issue #695 "Segmentation Violation in gm (LocaleCompare).
magick/error.c (DefaultFatalErrorHandler): Perform printf substitutions similar to DefaultErrorHandler.
magick/error.h: Add parameter names to prototypes.
magick/command.c (CompositeImageCommand): Properly deal with -noop when the user has not provided any images. Addresses SourceForge issue #691 "Segmentation Violation in gm (magick/command.c:3054)". (MogrifyImageCommand): Properly check argument list when validating "resample". Addresses SourceForge issue #692 "Segmentation Violation in gm (GetGeometry function)".
2023-03-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/command.c: Make "operator" parameter checking more robust. Addresses SourceForge issue #690 "Segmentation Violations in gm (magick/utility.c:3397)".
coders/msl.c (ProcessMSLScript): Fix use of memory just freed. Addresses SourceForge issue #689 "Heap UAF in gm (magick/utility.c:3792)"
coders/identity.c (ReadIdentityImage): Limit 'order' to a maximum of 40, and change to unsigned type in order to avoid undefined arithmetic overflow.
magick/command.c (MogrifyImage): Handle the case where image and region_image are the same. Addresses SourceForge issue #688 "Heap UAF in gm (magick/command.c:11427)".
coders/pict.c (WritePICTImage): Fix use of MagickFreeResourceLimitedMemory() on non-managed memory. Addresses SourceForge issue #687 "Heap Overflow in gm (magick/memory.c:728)".
magick/command.c (MogrifyImage): Validate that -lat argument is correctly formed, and that width and height are not zero.
magick/effect.c (AdaptiveThresholdImage): Validate that width and height are not zero. Addresses SourceForge issue #686 "Floating Point Exception in gm (magick/effect.c:379)".
magick/command.c (MogrifyImage): Report a draw argument error if drawing primitive is NULL. Addresses SourceForge issue #684 "Assertion bug in gm (magick/render.c:2715)" (MogrifyImage): Validate colorspace argument. Addresses SourceForge issue #685 Assertion bug in gm (magick/colorspace.c:1045)".
magick/utility.c (TranslateTextEx): An empty string argument should return an empty string rather than a NULL string.
2023-02-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
Makefile.am: Stop producing BZip, Gzip, Lzip, and Zstandard compressed archives so the only tar option is XZ compressed. See if anyone complains.
www/download.rst: Add summary documentation regarding archive formats.
2023-02-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/jpeg.c (ReadJPEGImage): Replace MagickAllocateResourceLimitedArray() with MagickAllocateResourceLimitedClearedArray() and eliminate explicit memset().
2023-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/blob.c (ImageToBlob): Immediately reject attempts to write blobs to formats which can not support blobs.
2023-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/mpc.c (RegisterMPCImage): Set seekable_stream and blob_support to false.
2023-02-05 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/configure/configure.rc Changed "Configure.EXE" to "configure.exe"
VisualMagick/configure/configure.exe Configure.exe has been blacklisted with 6 antiviruses. https://www.virustotal.com/gui/file/3a0e54c8439200faf666b5680e0608e93fd67b5cda0d72dc32f54f0308574aba
2023-02-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
configure.ac: Test for interesting libjpeg-turbo 3.0 functions (which may also appear in other JPEG libraries).
coders/jpeg.c: Block out existing code for C_LOSSLESS_SUPPORTED and D_LOSSLESS_SUPPORTED when compiling with JPEG-Turbo 3.0 since it is not compatible with it.
coders/wpg.c (ApproveFormatForWPG): Pass in existing ExceptionInfo pointer.
2023-01-31 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/wpg.c: Do not approve any format from "META" module for embedding.
2023-01-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/wpg.c (WriteWPGImage): image->colors is only valid for storage_class == PseudoClass.
2023-01-25 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/wpg.c: Format "8BIMTEXT" cannot be embedded inside WPG.
2023-01-24 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/tests/runtest.bat Add missing tests of fileformats.
2023-01-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
tests/rwblob.tap: Add sanity test for WPG format.
tests/rwfile.tap: Add sanity test for WPG format.
coders/wpg.c: Change line terminations back to ISO standard format. (RegisterWPGImage): WPG currently only supports one frame.
Makefile.am: No longer produce ".sig" files since the ".asc" files can do everything that the ".sig" files can do.
2023-01-15 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/tests/runtest.bat
coders/wpg.c Added WPG writer ... cross your fingers.
2023-01-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
PerlMagick/MANIFEST: Update PerlMagick manifest.
version.sh: Updated for 1.3.40 release.
NEWS.txt: Updated the news.
2023-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/jxl.c (ReadJXLImage): Cache and trace extra channel info.
2023-01-11 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/wpg.c Fixed Monochromatic bilevel WPG should answer to gm identify file.wpg ..... PseudoClass 2c 8-bit
2023-01-08 Fojtik Jaroslav <JaFojtik@yandex.com>
coders/wpg.c Fixed deffect in WPG header reading.
2023-01-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/png.c (WriteOnePNGImage): Use lower-case raw profile identifiers (e.g. 'Raw profile type xmp') because exiftool expects that. Partially addresses concerns raised by SourceForge bug #682 "Invalid storage of XMP in PNGs".
www/INSTALL-unix.rst: Add notes about required libjxl versions.
README.txt: Add notes about required libjxl versions.
2023-01-08 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/tests/runtest.bat Added new tests for WEBP, BMP2 & BMP3. These tests are passing.
2023-01-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
NEWS.txt: Updated the news.
It is 2023 now! Update copyrights, rotate changelogs, etc.
magick/blob.c (OpenBlob): Zlib has never supported opening Unix 'compress' .Z files (although gzip does). So don't open such files using zlib.
coders/sun.c: Add IM1, IM8, and IM24 magick aliases for Sun Raster format since those are the historically correct extensions.
2023-01-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/sun.c (ReadSUNImage): Address oss-fuzz 54810 "graphicsmagick:coder_SUN_fuzzer: Heap-buffer-overflow in ReadSUNImage".
coders/pict.c (WritePICTImage): Fix use of logical operator where binary operator is needed.
2023-01-05 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/installer/inc/body.isx 64 bit distribution MUST NOT be installed on pure 32 bit system. Sanity check added.
2023-01-05 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/installer/inc/body.isx
VisualMagick/installer/inc/files-dlls.isx (VisualMagick/installer/redist/VC2008SP1/vcredist_x64.exe must be downloaded from www). (VisualMagick/installer/redist/VC2008SP1/vcredist_x86.exe must be downloaded from www). Fix graphics magick installer for Windows.
2023-01-04 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/tests/runtest.bat Added new tests for PGX (jp2), MAT, uncommented test for EPDF and PICON.
2023-01-03 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/jp2/src/appl/UTILITY.txt removed fuzz.c.
2023-01-03 Fojtik Jaroslav <JaFojtik@yandex.com>
VisualMagick/jp2/src/libjasper/pgx/LIBRARY.txt
jp2/src/libjasper/include/jasper/jas_config.h PGX codec was not compilled into gm, now added.
2023-01-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/pict.c: Add more tracing.
2023-01-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/pcd.c (WritePCDTile): Handle writing image with a dimension of 1.
2023-01-02 Fojtik Jaroslav <JaFojtik@yandex.com>
jp2/* Update lib jasper to 2.0.33. Code cleanly compilles, but there is still some problem. Will be solved later. jp2/src/lib/jasper/include/jasper/stdbool2.h No longer needed.
2023-01-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/utility.c (GetMagickGeometry): Assure that width and height are not scaled down to zero since it is an invalid value.
coders/sun.c (ReadSUNImage): Enlarge RLE output buffer in order to avoid buffer overflow. Addresses oss-fuzz 54716 "graphicsmagick:coder_RAS_fuzzer: Heap-buffer-overflow in ReadSUNImage", which is due to a new problem added since the 1.3.39 release.
2023-01-01 Fojtik Jaroslav <JaFojtik@yandex.com>
jp2/* Update lib jasper to 2.0.0.
Copyright © GraphicsMagick Group 2002 - 2023