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!