GraphicsMagick

- Home
- Project
- Download
- Install
- Source
- News
- Utilities
- Programming
- Reference

# GraphicsMagick ChangeLog - 2022

2022-12-30 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/pcx.c (WritePCXImage): Make default RLE compression. Uncompressed PCX is more rare.

2022-12-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - NEWS.txt: Updated the news.

> - coders/pcx.c (WritePCXImage): Support writing uncompressed PCX by default. Use -compress RLE to enable RLE compression.

> - coders/sun.c (ReadSUNImage): Sense of monochrome images was inverted. Fix scanline size calculation. (WriteSUNImage): Sense of monochrome images was inverted.

2022-12-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/pcx.c (WritePCXImage): Fix heap overflow when writing more than 1023 scenes, and also eliminate use of uninitialized memory.

> - coders/pnm.c (ReadPNMImage): Compute the number of threads to use.

> - NEWS.txt: Update the news.

> - magick/command.c: Add use of GetFirstImageInList() where needed to assure that the list pointer is to the first image.

> - magick/constitute.c (ReadImage): Only perform subimage processing when required.

> - magick/command.c (MogrifyImages): Restore mogrify_images as first image in list since the rest of the code expects that.

2022-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/mat.c (ReadMATImageV4): Use ReplaceImageInList(). (ReadMATImage): Use ReplaceImageInList().

> - magick/command.c (MogrifyImages): Remove band-aid.

> - magick/list.c (AppendImageToList): Image list is updated to be new image.

> - magick/image.c (AllocateImage): Initialize colors directly. (GetImageInfo): Initialize colors directly.

> - utilities/tests/convert-cmds.txt: Add more convert command permutations.

2022-12-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - version.sh: Update shared library versioning in preparation for 1.3.39 release.

> - NEWS.txt: Updated the news.

2022-12-26 Fojtik Jaroslav <JaFojtik@yandex.com>

> - jp2/src/appl/jasper.c: Link problem with jasper utility fixed.

2022-12-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/gem.c (Contrast): Visual Studio 17.4.3 does not like initializing a static constant with "0.5+MagickEpsilon" in /precise mode.

> - magick/enhance.c (ContrastImagePixels): Visual Studio 17.4.3 does not like initializing a static constant with "0.5+MagickEpsilon" in /precise mode.

2022-12-25 Fojtik Jaroslav <JaFojtik@yandex.com>

> - webp/src/webp/types.h: Need to include inttypes.h

> - jp2/src/libjasper/include/jasper/jas_types.h: Fix missing _PFX_PTR in newer MSVC.

2022-12-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/symbols.h: Update symbol remappings which are enabled by PREFIX_MAGICK_SYMBOLS. The only new symbol since the last release is IsEventLogged().

> - NEWS.txt: Updated the news.

2022-12-25 Fojtik Jaroslav <JaFojtik@yandex.com>

> - jp2/*: Update lib jasper to 1.900.16.

2022-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - NEWS.txt: Updated the news.

> - coders/jxl.c (ReadJXLImage): Request that libjxl take care of any pre-multiplied alpha for us so we don't need to do it

2022-12-24 Fojtik Jaroslav <JaFojtik@yandex.com>

> - jp2/*: Update lib jasper to 1.900.5.

2022-12-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jxl.c: Support reading and writing ICC, EXIF, and XMP profiles. Lots of code cleanup.

> - PerlMagick/t/jxl: Created some JXL sanity-test files.

2022-12-22 Fojtik Jaroslav <JaFojtik@yandex.com>

> - VisualMagick/tests/runtest.bat: Make binary directory configurable on one place. Report error when rwblob.exe does not exist.

2022-12-22 Fojtik Jaroslav <JaFojtik@yandex.com>

> - jp2/*: Update lib jasper from 1.900.1 to 1.900.2.

2022-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jxl.c (ReadJXLImage): Now based on ImportImagePixelArea(). (WriteJXLImage): Now based on ExportImagePixelArea();

2022-12-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/msl.c (MSLEntityDeclaration): Report an error if xmlAddDocEntity() or xmlAddDtdEntity() fails.

> - coders/svg.c (SVGEntityDeclaration): Report an error if xmlAddDocEntity() or xmlAddDtdEntity() fails.

2022-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - NEWS.txt: Updated the news.

> - magick/image.c (SetImageDepth): Restore is_monochrome and is_grayscale image flags. Changing depth should not change the nature of 'gray'.

> - coders/jxl.c: Support reading and writing 32-bit 'float' images. Need a Q32 build in order to write 32-bit 'float' images.

> - fuzzing/oss-fuzz-build.sh: Remove xz --with-pic=yes option which now seems to annoy oss-fuzz build.

2022-12-17 Fojtik Jaroslav <JaFojtik@yandex.com>

> - VisualMagick/magick/magick_types.h.in: Reverting from 16859. The change in 16860 completelly breaks compillation.

2022-12-17 Fojtik Jaroslav <JaFojtik@yandex.com>

> - tiff/port/libport_config.h: Added missing file Documentation of libtiff upgraded. Upgraded libtiff to 4.5.0.

2022-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - tests/rwfile_deep.tap: Add JXL tests for deep images.

> - coders/jxl.c: Fix grayscale writer error. Eliminate use of deprecated functions. Support 16-bits/sample.

2022-12-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/pnm.c (ReadPNMImage): Do not promote gray images to PseudoClass unless the image dimensions make it worthwhile.

> - coders/gif.c (ReadGIFImage): Allocate cleared memory. Remove two redundant memsets.

2022-12-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/command.c (MogrifyImages): Fix performance anomaly noticed with large image list.

> - coders/tiff.c (ReadTIFFImage): Move monitor for list to a better spot so that rows and columns are valid.

2022-12-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/png.c (png_error): Use a macro to report exceptions (rather than calling libpng's png_error()) for exceptions thrown from this module. This provides useful file/line information as well as allowing code analyzers to have a more accurate idea of what is going on.

> - magick/widget.c (MagickXFileBrowserWidget): Fix Coverity 382252 "Wrong sizeof argument (SIZEOF_MISMATCH)".

> - coders/meta.c (parse8BIM): Fix Coverity 382245 "Incorrect expression (SIZEOF_MISMATCH)". (parse8BIMW): Fix Coverity 382250 "Incorrect expression (SIZEOF_MISMATCH)".

> - magick/widget.c (MagickXNoticeWidget): Fix Coverity 382254 "Incorrect expression (SIZEOF_MISMATCH)." (MagickXFontBrowserWidget): Fix Coverity 382253 "Incorrect expression (SIZEOF_MISMATCH)". (MagickXFileBrowserWidget): Fix Coverity 382252 "Incorrect expression (SIZEOF_MISMATCH)". (MagickXPreferencesWidget): Fix Coverity 382251 "Incorrect expression (SIZEOF_MISMATCH)". (MagickXConfirmWidget): Fix Coverity 382249 "Incorrect expression (SIZEOF_MISMATCH)". (MagickXListBrowserWidget): Fix Coverity 382248 "Incorrect expression (SIZEOF_MISMATCH)". (MagickXDialogWidget): Fix Coverity 382247 "Incorrect expression (SIZEOF_MISMATCH)". (MagickXColorBrowserWidget): Fix Coverity 382246 "(SIZEOF_MISMATCH)".

> - coders/jpeg.c (WriteICCProfile): Fix Coverity 382255 "Incorrect expression (SIZEOF_MISMATCH)".

> - Makefile.am (clean-local): Added a clean-local target to remove Coverity subdirectory ('cov-int'). Building with 'coverity' target leaves Coverity subdirectory in place for inspection.

> - NEWS.txt: Updated the news.

2022-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - utilities/tests/convert.tap: Produce more interesting 'info' output to 'convert.log'.

2022-12-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - configure.ac (top_srcdir_native): Produce a substituted value representing the top source directory expressed suitable for the native operating system. This is to support MinGW.

> - utilities/tests/convert.tap: Use ';' rather than '/' as sed delimiter character since '/' is a directory separator..

> - winpath.sh: Use printf rather than echo. If an escape level is not provided, then output an unescaped Windows path using forward-slashes.

> - Magick++/lib/Color.cpp: Add Quantum casts to Color() arguments to solve error with unidentified compiler. SourceForge issue #160 "Add Quantum casts for 16-bit to Image.cpp and Color.cpp".

> - Magick++/lib/Image.cpp: Add Quantum casts to Color() arguments to solve error with unidentified compiler. SourceForge issue #160 "Add Quantum casts for 16-bit to Image.cpp and Color.cpp".

2022-12-01 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/ps2.c, coders/ps3.c, coders/tiff.c, webp/src/webp/types.h tiff/libtiff/: Upgraded libtiff to libtiff-4.4.0 But code is still compilable with MSVC2008!

2022-11-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - Magick++/lib/Image.cpp: Don't just blindly return DisposeMethod as an 'int'.

> - Magick++/tests/attributes.cpp (main): Test with a valid GIF disposal method.

> - coders/msl.c (MSLStartElement): Eliminate 'undefined behavior' issues.

> - magick/colorspace.c (XYZTransformPackets): Use 'double' when performing summation and eliminate 'undefined behavior' issues. (RGBTransformPackets): Use 'double' when performing summation and eliminate 'undefined behavior' issues.

> - magick/constitute.c (ConstituteImage): Eliminate 'undefined behavior' issues.

> - magick/fx.c (SolarizeImage): Eliminate 'undefined behavior' issues.

> - magick/gem.c (Hull): Eliminate 'undefined behavior' issues.

> - configure.ac, magick/magick_types.h.in: Added some support for deducing magick_uintptr_t and magick_ptrdiff_t types.

> - utilities/tests/convert-cmds.txt: Added more command permutations to execute.

2022-11-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/constitute.c (ConstituteImage): Fix undefined behavior: runtime error: applying non-zero offset 2 to null pointer

> - coders/logo.c (RegisterLOGOImage): Logo image subformats do not have an image extension.

> - utilities/tests/convert-cmds.txt: Add more convert tests.

> - magick/render.c (DrawPrimitive): Fix for SourceForge issue #679 "Using "0,0" for image size throws an error in v1.3.38, worked previously". This bug was added in GraphicsMagick 1.3.36.

2022-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jpeg.c (ReadJPEGImage): Eliminate Clang Analyzer diagnostic. Add support for reading deep gray images.

> - magick/xwindow.c (MagickXDitherImage): Update documentation to add a link to an article about the HP Color Recovery algorithm.

> - coders/topol.c (ReadTOPOLImage): Eliminate Clang Analyzer diagnostic.

2022-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jpeg.c (WriteJPEGImage): Useful data_precision range is 8 to 16.

> - magick/profile.c (ProfileImagePixels): Make sure not to use indexes if it is NULL.

> - magick/xwindow.c (MagickXDitherImage): Eliminate use of undefined behavior. Make sure to deallocate memory upon error.

> - magick/widget.c (MagickXCommandWidget): Assure that prerequisite 'number_selections' is satisfied.

> - magick/xwindow.c (MagickXGetWindowImage): Assure that prereqisite 'colors' table for PseudoClass case is satisifed.

> - coders/png.c (ReadOnePNGImage): Make sure that background index is initialized.

> - magick/profile.c (ProfileImagePixels): Don't de-reference indexes if they were not supplied.

> - magick/widget.c (MagickXColorBrowserWidget): If mode_info.text is NULL, ignore event due to user pushing mode button.

> - coders/heif.c (ReadMetadata): Also guard against profile name being null.

2022-11-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/wpg.c (ReadWPGImage): Fix wrong use of LogWPGBitmapType2() macro, and resore previous definitions.

> - VisualMagick/magick/magick_types.h.in: Declare a ssize_t typedef in VisualStudio's <magick/magick_types.h> due to the unfortunate accidental use of ssize_t in Wand's MagickExtentImage() declaration. This should address SourceForge issue #673 "visual studio include error ssize_t redefinition".

>   Replace use of ReallocColormap() with previously existing ReallocateImageColormap(), which does the same thing.

> - coders/heif.c (ReadColorProfile): Support reading ICC color profile.

2022-11-20 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/wpg.c: Reveal more internal info to optional log.

2022-11-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - PerlMagick/t/wmf/read.t: Change reference images from MIFF format to GIF format to reduce wasted space.

> - PerlMagick/t/cgm/read.t: Change from read.miff to read.gif to reduce wasted space.

> - PerlMagick/t/x/write.t: Change from congrats.miff to congrats.gif to reduce wasted space.

> - coders/heif.c (ReadMetadata): If heif_image_handle_get_metadata_size() returns 0, then carrying on with reading image data. Addresses SourceForge issue 677 "Memory allocation failed - HEIF" but does not discover/address why libheif returns a zero metadata size.

> - PerlMagick/t/subroutines.pl (testRead): Support read-options in order to be more flexible.

> - PerlMagick/t/read.t: Change as many tests to be signature-based as possible and remove now unneeded reference files.

2022-11-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - PerlMagick/t/jpeg/read.t: Use JPEG image as reference image while doing Seattle FilmWorks test.

> - PerlMagick/t/read.t: Reduced distribution size by using signature test method for some tests.

> - PerlMagick/t/tiff/read.t: Added test for old JPEG.

2022-11-17 Fojtik Jaroslav <JaFojtik@yandex.com>

> > PerlMagick/t/input_JPG_old.tif: Added JPG embedded into TIFF using old Adobe's embedding style.

> > 2022-11-17 Fojtik Jaroslav <JaFojtik@yandex.com>

> - tiff/libtiff/tif_ojpeg.c: Backported from 4.4.0 to 4.1.0

2022-11-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/nt_base.h (snprintf): Add missing comma in macro.

2022-11-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/nt_base.c (NTsnprintf): New function intended to emulate C'99 snprintf for MSVC older than 2015.

> - magick/nt_base.h (snprintf): For MSVC older than 2015, fall back to using sprintf for the moment.

> - coders/msl.c (ProcessMSLScript): Handle parser creation failure.

> - coders/meta.c (GetIPTCStream): Assure that offset is initialized.

> - magick/floats.c (_Gm_convert_fp32_to_fp16): Fix Clang Analyzer complaints.

> - magick/xwindow.c (MagickXGetWindowColor): Assure that crop_info is initialized.

> - Makefile.am (scan-build): Added a scan-build target to help run Clang Analyzer.

> - coders/locale.c (WriteLOCALEImage): Fix Clang Analyzer complaints.

> - ALL: Replace strcpy() with strlcpy(), replace strcat() with strlcat(), replace sprintf() with snprintf(). Prefer using bounded string functions.

2022-11-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/png.c (ReadOnePNGImage): Change ping_file_depth to unsigned and add verifications for ping_bit_depth.

2022-11-09 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/fits.c: Store multiple scenes into one file.

2022-11-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/png.c (ReadOnePNGImage): More work on Coverity issue 381864.

> - magick/image-private.h (MaxValueGivenBits): Move to private header.

> - coders/xpm.c (ReadXPMImage): More work on Coverity issue 381862 "(DEADCODE)".

> - magick/operator.c (QuantumLogCB): Fix Coverity issue 381861 "Control flow issues (DEADCODE)".

> - coders/xpm.c (ReadXPMImage): Fix Coverity issue 381862 "(DEADCODE)".

> - magick/operator.c (QuantumGammaCB): Fix Coverity issue 381863 "Control flow issues (DEADCODE)".

> - coders/png.c (ReadOnePNGImage): Fix Coverity issue 381864 "BAD_SHIFT".

> - magick/operator.c (QuantumDepthCB): Fix Coverity issue 381867 "Control flow issues (DEADCODE)". (QuantumPowCB): Fix Coverity issue 381865 "Control flow issues (DEADCODE)".

> - magick/import.c (ImportViewPixelArea): Fix Coverity issue 381868 "Control flow issues (DEADCODE)".

> - magick/blob.c (DetachBlob): Do not dereference blob_info->data if it is null. Addresses Coverity issue 381869 "Null pointer dereferences (FORWARD_NULL)"and issue 381866 "Null pointer dereferences (FORWARD_NULL)".

> - coders/jpeg.c (FreeMagickClientData): Fix Coverity issue 381870 and 381860 "Null pointer dereferences".

> - magick/export.c (ExportViewPixelArea): Fix Coverity issue 381871 "Control flow issues (DEADCODE)" for the case where QuantumDepth = 32.

2022-11-05 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/wpg.c: Shrink amount of colors when palette is bigger than raster could store.

2022-11-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/blob.c (ReadBlobString): Fix oss-fuzz issue 53001 "graphicsmagick:coder_TXT_fuzzer: Use-of-uninitialized-value in ReadBlobString", which occurs due a bug remaining in recent changes.

2022-11-04 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: Remove junk n from log after printing footer contents.

2022-11-03 Fojtik Jaroslav <JaFojtik@yandex.com>

> - PerlMagick/t/input_3chars.xpm: New testcase with 3 bytes encoding per one pixel.

> - PerlMagick/t/reference/read/input_3chars_xpm.miff, PerlMagick/t/read.t: Added input_xpm_pal16.miff to PerlMagick test suite.

2022-11-03 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/xpm.c: Allow to read pallete that contains more colors than MaxColormapSize.

2022-11-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/image.c (SetImageInfo): Avoid creating temporary files when reading files with .bz2, .gz, .svgz, and .Z extensions if the format is non-ambiguous based on the file extension, and the reader does not require seeking.

> - magick/magick.c (MagickToMime): Add MIME mappings for apng, avif, bmp, ico, and webp.

2022-10-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/xpm.c (ReadXPMImage): coders/xpm.c (ReadXPMImage): Use qsort+bsearch to improve performance of color-lookups.

2022-11-01 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/wpg.c: Bilevel image must be allways monochrome. Discard palette if exists.

> - PerlMagick/t/input1_1.wpg, PerlMagick/t/reference/read/input1_1.wpg.miff New testcase with bilevel monochrome image.

> - PerlMagick/t/read.t: Added input1_1.wpg to PerlMagick test suite.

2022-10-31 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/xpm.c (ReadXPMImage): Output intelligent messag when colormap exceeds limit.

2022-10-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/blob.c (ReadBlobString): Fix oss-fuzz issue 52917 "graphicsmagick:coder_TXT_fuzzer: Stack-buffer-overflow in ReadBlobString", which occurs due to a bug added in yesterday's ReadBlobString() changes.

2022-10-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/blob.c (ReadBlobString): Use fgets() in order to get much better performance.

2022-10-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/xpm.c (ReadXPMImage): Improve read performance by using integer keys. Trace the colormap.

2022-10-29 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/xpm.c (ReadXPMImage): Replace strcmp with faster memcmp. It improves 21% performance on my test image.

2022-10-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/xpm.c (ReadXPMImage): Eliminate unnecessary strlen() upon memory reallocation for better performance.

2022-10-29 Fojtik Jaroslav <JaFojtik@yandex.com>

> - PerlMagick/t/input_bilevel.xpm, PerlMagick/t/reference/read/input_xpm_bilevel.miff: New testcase with bilevel monochrome image.

> - PerlMagick/t/read.t: Added input_xpm_pal16.miff to PerlMagick test suite.

2022-10-28 Fojtik Jaroslav <JaFojtik@yandex.com>

> - PerlMagick/t/input_pal16.xpm, PerlMagick/t/reference/read/input_xpm_pal16.miff New testcase with 16 bit palette.

> - PerlMagick/t/read.t: Added input_xpm_pal16.miff to PerlMagick test suite.

2022-10-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - NEWS.txt: Updated the news.

2022-10-20 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: Remove "optimisation" that has negligible or negative effect to overall performance.

2022-10-19 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: Cleanup GCC compile warnings.

2022-10-17 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: Do not consider whole image to be invalid when a second chunk header contains invalid data.

2022-10-16 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: Renamed image attribute "comment" from extended area to "TGA:file.comment" to prevent mix of these 2 comments. (Now TGA can produce both "comment" and "TGA:file.comment").

2022-10-14 Fojtik Jaroslav <JaFojtik@yandex.com>

> - PerlMagick/t/read.t: Add new tests for TGA files.

2022-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/dpx.c: Revert undocumented change to 'DPX:file.creator' attribute.

2022-10-13 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: Block alpha channel depending on value "AttributesType".

2022-10-12 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: New attributes "comment", "creator", "software", "TGA:file.JobName"

> - coders/gpx.c: Renamed attribute "DPX:file.creator" to "creator"

2022-10-10 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: TGA developper area is read.

2022-10-09 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: Check return code of seek blob operation.

2022-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/blob.c (SeekBlob): Fix SEEK_END validation. Addresses oss-fuzz 52133 "graphicsmagick:coder_ICB_fuzzer: Heap-buffer-overflow in ReadBlob".

2022-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - scripts/changelog2rst.sh: Try to deal with the crazy mix of spaces and hard tabs which are now appearing in the ChangeLog file.

2022-10-04 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: Fixed oss-fuzz-52084.

> - PerlMagick/t/input.tga: renamed to PerlMagicktinput_8_CC.tga

> - PerlMagick/t/reference/read/input_tga_8_BW.miff: New testcase.

> - PerlMagick/t/read.t: Added input_tga_8_BW.miff to PerlMagick test suite.

2022-10-03 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: TGA footer is read, currently used for logs only.

2022-10-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - scripts/rst2html5.py: Fix from Mark Mitchell to deal with RST file local include statements when invoked from a different directory. Also fix requested character set encoding.

2022-10-02 Fojtik Jaroslav <JaFojtik@yandex.com>

> - PerlMagick/t/{input_8_BW_rle.tga, input_8_CC_rle.tga, input_8_BW.tga}: Added 8 bit TGA samples.

2022-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - scripts/rst2html5.py: Applied patch by Mark Mitchell which replaces rst2htmldeco.py with rst2html5.py. rst2html5.py does essentially the same job as rst2htmldeco.py, but in a different way. docutils_htmldeco_writer.py is no longer used or needed.

>   Also fixed thanks.rst file which had non-utf8 characters, as well as ChangeLog.2006, ChangeLog.2008 and ChangeLog.2012.

> - PerlMagick/t/read.t: Added input_mono.tga to PerlMagick test suite.

> - coders/tga.c: White-space normalization. Eliminate compilation warning about unused indexes variable.

2022-10-01 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: Monochromatic bilevel TGA could be written.

2022-09-29 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/tga.c: Monochromatic bilevel TGA could be read.

2022-09-28 Fojtik Jaroslav <JaFojtik@yandex.com>

> - PerlMagick/t/input_mono.tga: Added monochromatic TGA sample generated by Graphics Workshop.

2022-09-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - scripts, www/Makefile.am: Fixes pertaining to use of Docutils to generate the HTML documentation.

2022-09-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - configure.ac: Search for a usable Python program, and then use it to execute Python scripts. This avoids depending on a default name.

> - magick/common.h (MAGICK_FUNC_MALLOC_2ARG): Add macros to support GCC malloc attributes which accept arguments.

2022-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - www/formats.rst: Add AVIF image file format to the list.

2022-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - www/formats.rst: Add JPEG XL to the list.

> - utilities/tests/icc-transform.tap: Preserve output files from icc-transform.tap until 'make clean' in order to allow inspection.

2022-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - fuzzing/oss-fuzz-build.sh: Disable using libxml2 in oss-fuzz build due to it being arbitrarily broken in the oss-fuzz build for several weeks with no solution offered. Nobody seems to care any more.

> - coders/svg.c: Re-enable support for XML internal subset.

2022-09-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - Magick++/lib/Image.cpp (Magick::Image::colorMapSize): Restore non-const Image::colorMapSize() since it caused an ABI change. Debian bug 1019158: "graphicsmagick breaks gnudatalanguage autopkgtest: undefined symbol: _ZN6Magick5Image12colorMapSizeEv".

2022-09-04 Fojtik Jaroslav <JaFojtik@yandex.com>

> - jpeg/*: Upgraded jpeg library to Version 9e 16-Jan-2022.

2022-09-04 Fojtik Jaroslav <JaFojtik@yandex.com>

> - VisualMagick/jpeg/LIBRARY.txt: Exclude files cjpegalt.c and djpegalt.c; cjpeg.c and djpeg.c are already excluded.

2022-08-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - fuzzing/oss-fuzz-build.sh: Add messaging regarding building libxml2 and jasper.

2022-08-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - Makefile.am (release): Generate ASCII armored ".asc" files directly since this seems to be prefered over converting from ".bin" files.

2022-08-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - Makefile.am: Some people prefer GPG signature files in ASCII armored ".asc" format rather than the OpenPGP binary ".bin" format, so produce both.

2022-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - Fix UTF-8 encoding errors in some text and source files. A few more issues remain. Assistance is appreciated.

2022-08-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/svg.c (ReadSVGImage): Address concern from SourceForge issue #669 "Segmentation fault caused by null pointer dereference by checking return from xmlCreatePushParserCtxt(). Address oss-fuzz 48340 "graphicsmagick:coder_SVG_fuzzer: Heap-use-after-free in xmlParseInternalSubset" by disabling internal subset handling until the parser context handling is fixed.

2022-08-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - NEWS.txt: Updated the news.

2022-08-10 Fojtik Jaroslav <JaFojtik@yandex.com>

> - VisualMagick/configure/stdafx.h: Added define WIN32_LEAN_AND_MEAN

> - VisualMagick/configure/configure.exe: New rebuild.

2022-08-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - fuzzing/oss-fuzz-build.sh (MAGICK_LIBS): Add libsharpyuv.a to the list of libraries to check for.

2022-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - configure.ac: When checking for libwmf, add a test for libsharpyuv. Not yet tested but maybe it will work.

2022-08-07 Fojtik Jaroslav <JaFojtik@yandex.com>

> - VisualMagickconfigureconfigure.cpp: The /MACHINE:x86 should never be placed to DLL dependency list.

2022-08-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/tga.c: Enhance 'coder' level trace information. Normalize on 'unsigned int' as much as possible in order to use natural types and likely help with function inligning.

2022-08-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/tga.c (ReadTGAImage): Remove a defective validation of comment length, which blocked reading some sample TGA files from the "Encyclopedia Of Graphics File Formats" book.

2022-07-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/heif.c: If module is compiled, but HasHEIF is not defined, then RegisterHEIFImage/UnregisterHEIFImage implementations are empty.

> - coders/jxl.c: If module is compiled, but HasJXL is not defined, then RegisterJXLImage/UnregisterJXLImage implementations are empty.

2022-07-30 Sam James <sam@gentoo.org>

> - configure.ac: Fix Bashism in maintainer-mode check.

2022-07-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/miff.c (ImportRLEPixels): Add missing type cast for consistency with other similar code. However, I do not believe this is an actual bug. Addresses GraphicsMagick bug 670 "Missing cast".

2022-07-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/magic.c: Auto-detect JXL format based on file header. Much thanks to Quyen Pham Ngoc for noticing that this was missing.

2022-06-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - NEWS.txt: Update with news since last release.

2022-05-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - Magick++/lib/Image.cpp: colorMapSize() method for returning the number of colormap entries should be a const method. Change is due to an email from Miro Kropáček on May 29, 2022.

2022-05-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - www/Magick++/Image.rst: Update getIndexes() and getConstIndexes() documention to mention that the selected region is defined by a prior getPixels(), getConstPixels(), or setPixels() call. This is inspired by private email from Miro Kropáček on May 8, 2022.

> - coders/jpeg.c (WriteJPEGImage): Change "arithmetic" to "arithmetic-coding" in order to match ImageMagick's previously existing syntax.

> - coders/png.c (ReadOnePNGImage): Assure that entire image list is freed. Addresses oss-fuzz 46997 "graphicsmagick:coder_MNG_fuzzer: Indirect-leak in MagickMallocCleared". This is a new issue due to incrementally seeking the complete correct error-handling cleanup.

2022-05-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - doc/options.imdoc: Add documentation for -define jpeg:arithmetic.

2022-04-30 Fojtik Jaroslav <JaFojtik@yandex.com>

> - coders/jpeg.c: Optionally enable arithmetic coder in JPG images. gm convert -define jpeg:arithmetic=true testimg.jpg arith.jpg

2022-04-27 Fojtik Jaroslav <JaFojtik@yandex.com>

> - jpeg/: Update aged JPG library to version 9d.

2022-04-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/ps.c (ReadPSImage): Assure that 'bounds' structure is initialized.

> - coders/ept.c (ReadEPTImage): Assure that 'bounds' structure is initialized.

> - magick/log.c (IsEventLogged): New function to report if a particular event will be logged. Us this as much as possible throughout the software to replace use of IsEventLogging().

> - coders/png.c (ReadMNGImage): Address oss-fuzz 46913 "graphicsmagick:coder_WPG_fuzzer: Indirect-leak in MagickMallocCleared" which was partially pre-existing and partially due to a botched fix for oss-fuzz 46843.

2022-04-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/png.c (ReadMNGImage): Address oss-fuzz 46843 "graphicsmagick:enhance_fuzzer: Heap-use-after-free in CloseBlob".

2022-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/{msl.c, svg.c, url.c}: When __MINGW32__ is defined, then only define _MSC_VER if it is not already defined. Also define _MSC_VER with a somewhat useful value. This change is prompted by a posting by "LM" to the graphicsmagick-core list on April 17, 2022.

2022-04-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/png.c (ReadOnePNGImage): Make sure that ping_num_trans is initialized. Fixes oss-fuzz 46760 "Use-of-uninitialized-value - ReadOnePNGImage".

2022-04-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/blob.c (OpenBlob): Allocate setvbuf() buffer externally rather than implicitly. I am hoping that the several oss-fuzz reports about using uninitalized memory from glibc's _IO_file_doallocate() go away.

2022-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/heif.c (RegisterHEIFImage): Support reading AVIF via libheif if it supports decoding AVIF.

2022-04-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - www/index.rst: Update the Coverity Analysis Metrics.

> - magick/display.c (MagickXAnnotateEditImage): Quiet Coverity 376901 "Identical code for different branches (IDENTICAL_BRANCHES)".

> - coders/svg.c (ReadSVGImage): Default to not allowing external entity substitution. Quiets Coverity 376905 "unsafe_xml_parse_config (UNSAFE_XML_PARSE_CONFIG)".

> - coders/msl.c (ProcessMSLScript): Default to not allowing external entity substitution. Quiets Coverity 376913 "unsafe_xml_parse_config (UNSAFE_XML_PARSE_CONFIG)".

> - magick/error.c (ThrowLoggedException): Silence Coverity 376912 "Dereference after null check (FORWARD_NULL)".

> - coders/jp2.c (ReadJP2Image): Silence Coverity 264883 "Division or modulo by float zero (DIVIDE_BY_ZERO)". (ReadJP2Image): Fix Coverity 376911 "Improper use of negative value (NEGATIVE_RETURNS)".

> - magick/xwindow.c (MagickXMakeMagnifyImage): Fix Coverity 376906 "Division or modulo by zero (DIVIDE_BY_ZERO)".

> - magick/resize.c (ScaleImage): Fix Coverity 376908 "Resource leak (RESOURCE_LEAK)".

> - magick/locale.c (GetLocaleMessageFromTag): Fix Coverity 376907 "Out-of-bounds read (OVERRUN)".

> - magick/render.c (DrawPrimitive): Fix Coverity 376904 "Out-of-bounds access (OVERRUN)".

2022-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - version.sh: Prepare for 1.3.38 release.

> - Makefile.am (release, snapshot): Generate SHA-256 checksums as a by-product of 'make snapshot' or 'make release'.

> - www/download.rst: Add documentation regaring SHA-256 checksums.

> - NEWS.txt: Update the news again.

> - coders/miff.c (ReadMIFFImage): Validate claimed bzip2-compressed row length prior to reading data into fixed size buffer. Addresses SourceForge bug #664 "[bug]Heap buffer overflow when parsing MIFF". This severe bug only impacts builds with BZLIB support.

2022-03-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jxl.c (ReadJXLImage): Added patch from Tobias Mark to optimize EOF detection if the input file size is known. Avoids waiting for ReadBlob() to report EOF.

2022-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - Magick++/lib/Magick++/Include.h: Support 'ReadResource'.

2022-03-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jxl.c: Added some debug logging instrumentation so we can see the information the JXL reader is provided by libjxl.

> - configure.ac: JXL is working well enough to enable it by default.

2022-03-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jxl.c (WriteJXLImage): Call JxlEncoderCloseInput() so that encoder output is not corrupt. JXL passes testsuite tests now!

> - magick/command.c (CompareImageCommand): Add -auto-orient support to 'compare'. This tries to assure that the two images are right side up before comparing.

2022-03-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jxl.c (WriteJXLImage): Work to update JXL writer code to compile clean with libjxl v0.7.0. Still not working!

2022-02-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/heif.c (ReadHEIFImage): Pass decode options to heif_decode_image(). Include rough implementation of progress monitor support but leave it disabled since libheif does not currently invoke the callbacks.

> - coders/jpeg.c (ReadJPEGImage): Store embedded profiles in image, even if in 'ping' mode. This addresses a problem discovered when interfacing with minimagick (Debian bug #1006374 "graphicsmagick breaks ruby-mini-magick").

> - coders/url.c (ReadURLImage): Deal with libxml2 not offering HTTP or FTP capabilities. It seems that support for FTP has now been removed by default.

2022-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - README.txt: Recomend using JasPer 3.0.0 (or later).

> - VisualMagick/magick/magick_config.h.in: Disable building with bundled JasPer sources by default since the bundled sources are archaic.

> - coders/jp2.c: Fix compilation with JasPer 3.0.0 (which is now released).

2022-02-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/fx.c (ColorizeImagePixelsCB): Apply clipping and rounding to handle out of range values and provide the most accurate result. Addresses SourceForge bug #662 "Broken -colorize".

2022-01-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jp2.c (ReadJP2Image): Jasper 3.0.0 hid the functions we were using so switch back to using jas_image_decode(), but in a more secure way than before.

2022-01-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - www/download.rst: Document how to retrieve the PGP signing key from a key server.

2022-01-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jp2.c (ReadJP2Image): Always use ThrowJP2ReaderException(). Should address oss-fuzz Issue 43979: "graphicsmagick:enhance_fuzzer: ASSERT: jas_get_ctx() == jas_global.ctx".

2022-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - utilities/tests: Write compressed MIFF files to reduce disk space usage.

> - magick/command.c (CompareImageCommand): Support '-compress' option.

> - coders/mpc.c: Fix warnings from GCC 11.

> - coders/miff.c: Fix warnings from GCC 11.

2022-01-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jp2.c: Adaptations to work with Jasper 3.0.0's jas_init_library() and other related functions. Add missing jas_cleanup_thread(). Do not request a higher memory limit than JasPer's own limit in order to avoid a warning.

2022-01-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/miff.c (ReadMIFFImage): Do not proceed to next image in sequence unless the character read is the expected 'i' character. Inspired by GraphicsMagick bug #659 "Can not escape $0 in a batch command".

> - coders/heif.c (ReadHEIFImage): Take row stride into account when reading pixel rows. Add support for 'ping' mode. Add header magic detection. Add module aliases. Add useful traces.

2022-01-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/jxl.c: Added preliminary JPEG XL support written by Tobias Mark. From Code Merge Request #14: "Added (basic) jpeg-xl support". The writer is not working properly at this time.

> - www/formats.rst: Add HEIF to the list of supported formats.

> - README.txt: Expand the text regarding support for HEIF/HVEC support.

2022-01-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - coders/heif.c: HEIF reader written by Tobias Mark. From SourceForge Code Merge Request #15: "Added minimal heif support".

> - magick/blob.c (ReadBlobStream): Fix EOF logic similar to ReadBlob. Addresses oss-fuzz 43617 "graphicsmagick:coder_P7_fuzzer: Use-of-uninitialized-value in WritePNMImage".

2022-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/blob.c (ReadBlob): Fix EOF logic. Addresses oss-fuzz 43490 "graphicsmagick:coder_PNM_fuzzer: Use-of-uninitialized-value in SyncImageCallBack".

> - coders/pnm.c (ReadPNMImage): Make sure that we don't lose the image exception.

2022-01-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/blob.c: Throw a user-friendly exception when the read limit has been exceeded.

> - coders/jpeg.c: Add tracing and fallback for longjmp().

> - coders/pict.c (DecodeImage): Assure that the claimed scanline length is within the bounds of the scanline allocation to avoid possible heap overflow.

2022-01-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/blob.c: Make sure that read resource limiting can support very large files.

2022-01-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - magick/resource.c: Add support for setting a read resource limit via the MAGICK_LIMIT_READ environment variable, or similar to '-limit read 5mb'.

> - magick/resource.h: Added a ReadResource limit, which is a limit on how many uncompressed file bytes may be read while decoding an input file.

2022-01-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

> - ChangeLog.2021: Rotate ChangeLog for 2022. Happy New Year!

Copyright © GraphicsMagick Group 2002-2025