diff options
Diffstat (limited to 'www/ChangeLog-2021.rst')
-rw-r--r-- | www/ChangeLog-2021.rst | 806 |
1 files changed, 806 insertions, 0 deletions
diff --git a/www/ChangeLog-2021.rst b/www/ChangeLog-2021.rst new file mode 100644 index 0000000..9d8754c --- /dev/null +++ b/www/ChangeLog-2021.rst @@ -0,0 +1,806 @@ +2021-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* doc/{gmdoc2html, gmdocselect, imdoc2man, imdocselect}: Fixes to + work better with both GNU sed and Solaris/Illumos sed. + + \* doc/GNUmakefile: Use GNU make rules to produce the full imdoc + list for man, html, and tex, rather than relying on a shell + wildcard expression, since the order produced by the shell + wildcard expression is indeterminate. + + +2021-12-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* www/index.rst: Document that + https://graphicsmagick.sourceforge.io/index.html is also + available. + + \* www/programming.rst: Update URLs. Add a link to a 'Go' binding. + + \* Copyright.txt: Update Copyright text for 2022 and prepare for + new year. + +2021-12-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/{gif.c, meta.c, miff.c, mpc.c, pdb.c, pnm.c xpm.c}: Rely + on \_MagickReallocateResourceLimitedMemory() to extend memory + allocation. + + \* magick/memory.c (\_MagickReallocateResourceLimitedMemory): Remove + size limit from realloc binary expansion. Fix reallocs tally counts. + + \* magick/memory-private.h(\_MagickReallocateResourceLimitedMemory) + : Remove use of GCC/Clang '\_\_attribute\_malloc\_\_' since it is not + appropriate for this function. + + \* magick/memory.c (\_MagickReallocateResourceLimitedMemory): + Maintain a tally of the total number of octets moved by realloc. + +2021-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/mat.c (ReadMATImage): Change 'ldblk' to size\_t and + check related calculations for overflow and to avoid possible + negative seek offsets. + (FixLogical): Pass 'ldblk' as size\_t. + (ReadMATImage): Assure that corrupt/incomplete image is not + returned. + +2021-12-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* magick/profile.c (AppendImageProfile): Deprecate this function + since JPEG was the last user. + + \* coders/jpeg.c (AppendProfile): Implement more efficient way to + append JPEG profile chunks. Addresses SourceForge issue #634 + "Slow to read JPEG with big APP1 profile". + + \* coders/jp2.c (ReadJP2Image): Free 'options' which is now + allocated memory. + + \* coders/png.c (ReadOnePNGImage): Support the define + png:chunk-malloc-max=limit in order to allow reading PNG files + which report "chunk data is too large" or to reduce the default + limit. The default libpng limit is 8,000,000 bytes, which is more + than sufficient for normal files. Note that since PNG uses + compression, the limit is on the uncompressed data and a + relatively small file may be able to provide a chunk which + decompresses to a large size. Addresses SourceForge #594 "Be able + to affect libpng user\_chunk\_malloc\_max". + +2021-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* PerlMagick/Magick.xs: Fix issue that image fill attribute had + its opacity reset to transparent so it could not be usefully set + at image scope. Note that this fix may change results if the fill + attribute is not set since then the default will actually be used. + Support Get of "fill" and "stroke". Addresses SourceForge issue + #650 "Image attributes not working and not as documented for + PerlMagick". Eliminate use of dangerous strncpy(). + + \* magick/transform.c (TransformImage): Trace crop geometry. Trace + transform geometry. + (CropImage): Trace crop geometry. Trace bounding page. + + \* Magick++/lib/Image.cpp (Magick::Image::trim): Trim requires + NorthWestGravity. + + \* magick/command.c (MogrifyImage): Trim requires + NorthWestGravity. Fixes SourceForge issue #653 "convert: warning + when using -gravity with -trim". This was more than a warning. + +2021-12-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/jp2.c: Properly support passing JasPer options for + decoder and encoder, including the 'debug' option. + (initialize\_jasper): Call jas\_conf\_set\_allocator() and pass the + maximum amount of memory it should be allocated to use. This + seems to avoid a malfunction. Re-enable use of jas\_initialize(). + +2021-12-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/jp2.c (realloc\_rlm): JasPer wants its custom memory + allocators to return non-null for a zero-sized request. Make it + so for the 'realloc' case as well. Development JasPer 3.0.0 + jas\_initialize() is not yet ready for our purposes. + + \* coders/mat.c (ReadMATImageV4): Change 'ldblk' to size\_t and + check related calculations for overflow and to avoid possible + negative seek offsets. + +2021-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* magick/signature.c: Remove functions FinalizeSignature, + GetSignatureInfo, TransformSignature, UpdateSignature and other + private implementation details from signature.h. Use managed + memory allocator. + + \* coders/png.c (DestroyJNG): Deallocate alpha\_image temporary file in DestroyJNG(). + (ReadOnePNGImage): If setjmp fires, then don't return a broken + image. + +2021-12-18 Fojtik Jaroslav <JaFojtik@yandex.com> + + \* magick/wpg.c: Fix incorrect TrX and TrY elements in CTM. + Backported from WP2LaTeX: https://hg.osdn.net/view/wp2latex/wp2latex/rev/ce47149e7e67 + +2021-12-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* utilities/tests/convert.tap: Use sed to count file lines rather + than wc since wc output is inconsistent. Fixes SourceForge issue + #657 "Convert test fails in 1.3.37". + + \* configure.ac: Search for a GnuPG 'gpg' program. + + \* Makefile.am (snapshot): Add support for PGP-signed snapshots. + + \* www/download.rst: Add documentation for how to validate + downloaded files. + +2021-12-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* version.sh: Update shared library versioning information for + forthcoming 1.3.37 release. + + \* scripts/graphicsmagick\_snapshot\_copy-ssh: Sample + graphicsmagick\_snapshot\_copy script which uses scp to copy + snapshot files to a directory at a remote host, and then rsync + over ssh from there to SourceForge. Copy to a local script + directory and edit to suit local requirements. + + \* scripts/graphicsmagick\_snapshot\_copy-local: Sample + graphicsmagick\_snapshot\_copy script to copy snapshot files to a + local directory and then rsync over ssh to SourceForge. Copy to a + local script directory and edit to suit local requirements. + + \* Makefile.am (snapshot): Rely on the graphicsmagick\_snapshot\_copy + script to reduce files we don't care to distribute so that all + targets are still produced. + + \* coders/jp2.c (alloc\_rlm): JasPer expects its allocator to return + non-null for zero size + +2021-12-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* Makefile.am (snapshot): Update the snapshot target to distribute + a minimal set of files. + + \* magick/symbols.h: Update the list of Gm prefixed symbols. + + \* NEWS.txt: Updated with changes until today. + +2021-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* www/index.rst: Development snapshots are now at SourceForge. + + \* www/download.rst, www/index.rst, README.txt: Remove references + to ftp.graphicsmagick.org, which was shut down due to continuing + abusive practices and lack of support from the user community. + +2021-12-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* magick/memory-private.h + (MagickAllocateResourceLimitedMemoryAttribute): Remove extraneous + comma. + + \* coders/wpg.c (LoadWPG2Flags): Fix comment type and whitespace + issues. + +2021-11-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/caption.c (ReadCAPTIONImage): Set draw\_info to NULL upon + deallocation. Fixes an assertion reported by Michael Melcher via + the graphicsmagick-bugs list on November 11, 2021. + +2021-11-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/jp2.c (initialize\_jasper): For JasPer 3.0.0 and later, + use resource-limited memory allocators. JasPer 3.0.0 is not yet + released at this time. + +2021-11-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/gif.c (ReadGIFImage): Handle GIF files where the 'opaque' + index matches the number of colors by producing an extra colormap + entry of transparent black. Fixes SourceForge issue 649 "Bug with + gm identify" where the test case produces the error "Invalid + colormap index (index 128 >= 128 colors, /tmp/broken.gif)". + + \* magick/enum\_strings.c (StringToDisposeType): New utility + function to convert a string to a DisposeType. + (DisposeTypeToString) New utility function to convert a + DisposeType to a string. + + \* coders/msl.c (MSLEndElement): Ignore imbalanced group + closure. Fixes oss-fuzz 40680 "graphicsmagick:coder\_MSL\_fuzzer: + Heap-buffer-overflow in MSLEndElement". + +2021-11-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/tiff.c (ReadTIFFImage): Make sure that loops using + TIFFReadScanline(), etc, do quit upon first reported error. Fixes + oss-fuzz 39167 "graphicsmagick:coder\_BIGTIFF\_fuzzer: + Use-of-uninitialized-value in DisassociateAlphaRegion", as well as + other such cases. + + \* coders/png.c (png\_get\_data): On a short read, assure that the + remainder of the buffer is initialized just in case subsequent + code accesses it. + + \* coders/msl.c (MSLStartElement): Assure that + 'msl\_info->attributes[n]' is not NULL before attempting to use it. + This is assumed to eliminate oss-fuzz 40226 + "graphicsmagick:coder\_MSL\_fuzzer: ASSERT: image != (Image \*) + NULL". + +2021-11-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (MSLStartElement): Return immediately if there is + already an error or the image is NULL. Do not discard exceptions + when calling functions which return a new image. Try even harder + to shut down the libxml2 parser. Fixes SourceForge issue 652 "SEGV + in gm at coders/msl.c:883". + +2021-10-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* magick/widget.c (MagickXPreferencesWidget): Eliminate + compilation warning about 'strlen' argument missing terminating + nul. + +2021-10-24 Fojtik Jaroslav <JaFojtik@yandex.com> + + \* magick/wpg.c: ObjectID>=0x8000 automatically switches double precision on. + +2021-09-18 Fojtik Jaroslav <JaFojtik@yandex.com> + + \* PerlMagick/t/wmf/JPGinside.emf: Add test file: EMF that embedds + JPG. + +2021-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* magick/blob.c (WriteBlob): Use appropriate handle for bzip2. + Patch by Sam James <sam@gentoo.org>. + +2021-08-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/jp2.c (initialize\_jasper): Make minimal use of new JasPer + function jas\_initialize() in order to avoid severe problems with + jas\_init(). + + \* configure.ac: Detect new JasPer function jas\_initialize(). + +2021-08-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (MSLError): Call xmlStopParser() rather than + setting parser instate = XML\_PARSER\_EOF. + + \* coders/svg.c (SVGError): Call xmlStopParser() rather than + setting parser instate = XML\_PARSER\_EOF. + +2021-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/pdf.c (WritePDFImage): Use appropriate memory deallocator + for memory returned by StringToList(). Fixes SourceForge issue + 646 "Assertion failed using -label with PDF". + + \* coders/webp.c (ReadWEBPImage): Add full error checking when + retrieving embedded profiles. + + \* magick/profile.c (SetImageProfile): Do not try to store a + zero-sized profile. + + \* coders/webp.c (ReadWEBPImage): Enforce that embedded profiles + provided by libWebP are not zero-sized. This problem was brought + to our attention by Shane Bishop on the graphicsmagick-help + mailing list. + +2021-07-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* Makefile.am: Add support for using an external + 'graphicsmagick\_snapshot\_copy' script to copy files for the + 'snapshot' target. This provides local control over how files are + copied and where they are copied to. + + \* coders/msl.c (MSLStartElement): Use macros to simplify + validations and reduce repeated code fragments. Add validations + for image size and pixels present where applicable. Fixes + oss-fuzz 36224 "graphicsmagick:coder\_MSL\_fuzzer: Timeout in + coder\_MSL\_fuzzer". + + \* magick/transform.c (RollImage): Assert that image rows and + columns are not zero. + +2021-07-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/jp2.c (initialize\_jasper): Update for the latest version + of the evolving jas\_init\_custom() interface provided by the + mdadams-callbacks branch. + +2021-07-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/jp2.c: Assure that the designated decoder is used rather + than using autodetection and possibly using a different decoder + than intended. Added experimental support for JasPer + HAVE\_JAS\_INIT\_CUSTOM feature, but leave disabled by default. Fix + a stream manager bug noticed with the madams-callbacks branch of + JasPer. + +2021-06-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (ProcessMSLScript): Fix possible use of freed + memory. Fixes oss-fuzz 35621 "graphicsmagick:coder\_MSL\_fuzzer: + ASSERT: image->signature == MagickSignature". + + \* fuzzing/oss-fuzz-build.sh: Disable reading and writing of + gzip/bzip files since we don't have a viable solution for formats + which require an uncompressed file as input. + +2021-06-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/pcx.c (ReadPCXImage): Fix problem that 16-colors are used + rather than 256-colors given sample file provided. Resolves + SourceForge patch #65 "PCX file not read correctly". Patch is by + Sam Yang. + + \* coders/jp2.c (ReadJP2Image): Pass "max\_samples" option to Jasper + to try to limit the amount of memory it may allocate while opening + a file. Addresses oss-fuzz 35265 + "graphicsmagick:coder\_PGX\_fuzzer: Out-of-memory in + coder\_PGX\_fuzzer". + +2021-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/webp.c (ReadWEBPImage): Use SetImagePixelsEx() rather + than GetImagePixelsEx() in reader. Patch by Tobias Mark via + SourceForge patch #66 "Minor improvment webp". + +2021-06-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/svg.c (GetTransformTokens): Fix massive over-allocation + of string due to use of AcquireString() on entire remaining text + buffer. Addresses oss-fuzz 35171 "graphicsmagick:coder\_SVG\_fuzzer: + Out-of-memory in coder\_SVG\_fuzzer". + (GetTransformTokens): Apply an arbitrary limit on number of tokens + to avoid DOS. + (GetStyleTokens): Fix massive over-allocation of string due to use + of AcquireString() on entire remaining text buffer. + (GetStyleTokens): Don't use strlcpy() to copy token because it + scans full text. + (GetTransformTokens): Don't use strlcpy() to copy token because it + scans full text. + +2021-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (MSLStartElement): Use resource-managed memory + allocator for msl\_info->group\_info and assure that memory is + cleared so that empty group does not result in use of + uninitialized data. Addresses oss-fuzz 34869 + "graphicsmagick:coder\_MSL\_fuzzer: Use-of-uninitialized-value in + MSLEndElement". + + \* magick/memory.c (\_MagickReallocateResourceLimitedMemory): Round + up allocation size on small reallocs in order to lessen the number + of actual reallocs. + +2021-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/svg.c (SVGComment): Re-implement comment callback to be based on + the managed-memory allocator and avoid excessive use of strlen(). + (SVGCharacters): Re-implement characters callback to to be based + on the managed-memory allocator and avoid excessive use of + strlen(). Addresses oss-fuzz 34168 + "graphicsmagick:coder\_SVGZ\_fuzzer: Timeout in coder\_SVGZ\_fuzzer". + + \* magick/memory.c (\_MagickResourceLimitedMemoryGetSizeAttribute): + New private function to retrieve various integral size values from + the managed-memory allocator regarding a specified allocation. + + \* magick/utility.c (MagickStripString): New function to replace + 'Strip' which is now deprecated. This version returns the string + length. + +2021-05-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* Magick++/lib/Magick++/{Drawable.h, STL.h}: Use \_MSVC\_LANG in + addition to \_\_cplusplus when testing for C++'17 since the + Microsoft C++ compiler only properly defines \_\_cplusplus if the + /Zc:\_\_cplusplus switch was provided. + +2021-05-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* Magick++/lib/Magick++/STL.h: Support compiling with C++'98 + through C++'17. + + \* Magick++/lib/Magick++/Drawable.h: Support compiling with C++'98 + through C++'17. + +2021-05-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* magick/command.c (CompareImageCommand): If user has not + indicated a 'matte' preference, then include the opacity channel + in the compare if either image has a matte channel. Addresses + SourceForge issue #642 "Result of command "gm compare" depends on + order of images". + +2021-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* magick/compare.c (IsImagesEqual): Eliminate hard + "ImageOpacityDiffers" error when matte channel flag differs + between the images being compared. Instead of throwing a hard + error, treat the opacity channel of the image as opaque if the + matte flag is not set. + +2021-04-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/jpeg.c: It is apparently now undefined behavior to assign + the return value from setjmp() to a variable. Remove recently + added code which is now doing that. Much thanks to Chris Gravely + for noticing this. + +2021-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/jpeg.c (ReadJPEGImage): Error cases depending on + ThrowReaderException() were now leaking client data memory. + Replace such cases with customized ThrowJPEGReaderException() + which assures that it is freed. + (WriteJPEGImage): Error cases depending on ThrowWriterException() + were now client data memory. Replace such cases with customized + ThrowJPEGWriterException() which assures that it is freed. + +2021-04-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/jpeg.c: Restructure client data so it is allocated on the + heap rather than the stack. Happens to fix SourceForge issue 641 + "SIGSEGV thrown performing longjmp in jpeg.c". + +2021-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/png.c (ReadOnePNGImage): Assure that null + ping\_trans\_alpha pointer is not dereferenced. Addresses oss-fuzz + 33119 "graphicsmagick:coder\_MNG\_fuzzer: Null-dereference READ in + ReadOnePNGImage". + + \* magick/profile.c (SetImageProfile): Use the resource-limited + memory allocator to allocate embedded profiles. + + \* magick/map.c (MagickMapCopyResourceLimitedString): New private + function to copy a resource-limited string. + (MagickMapDeallocateResourceLimitedString): New private function + to deallocate a resource-limited string. + (MagickMapCopyResourceLimitedBlob): New private function to copy a + resource-limited blob. + (MagickMapDeallocateResourceLimitedBlob): New private function to + deallocate a resource-limited blob. + +2021-04-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/svg.c (GetStyleTokens): Limit the number of style tokens. + Addresses oss-fuzz 32921 "graphicsmagick:coder\_SVG\_fuzzer: + Out-of-memory in coder\_SVG\_fuzzer". + (SVGComment): Only capture first comment rather than concatenating + all comments. Addresses oss-fuzz 32944 + "graphicsmagick:coder\_SVGZ\_fuzzer: Timeout in coder\_SVGZ\_fuzzer". + +2021-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (MSLReference): Fix memory leak when parser node is + null. Addresses oss-fuzz 32713 "graphicsmagick:coder\_MSL\_fuzzer: + Direct-leak in xmlNewReference". + +2021-04-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/png.c (ReadOnePNGImage): Avoid use of null + ping\_trans\_color. Fixes oss-fuzz 32666 + "graphicsmagick:coder\_MNG\_fuzzer: Null-dereference READ in + ReadOnePNGImage". + +2021-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (WriteMSLImage): Add OpenBlob()/CloseBlob() which + seems necessary to avoid memory leak in ImageToBlob(). Hopefully + will fix oss-fuzz 32575 "graphicsmagick:coder\_MSL\_fuzzer: + Direct-leak in MagickMalloc". + +2021-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/jp2.c (RegisterJP2Image): Report JasPer library version. + + \* coders/msl.c (ProcessMSLScript): Free msl\_image upon reader + failure. Should fix oss-fuzz 32479 + "graphicsmagick:coder\_MSL\_fuzzer: Indirect-leak in MagickMalloc". + +2021-03-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* PerlMagick/Makefile.am (check-perl): Nullify the check-perl + target when PerlMagick is enabled and shared libraries are used. + This is because a dynamic GraphicsMagick needs to be formally + installed before PerlMagick can be tested. + + \* coders/jp2.c (ReadJP2Image): Support both old and new ways to + determine if JasPer codec support is available. + + \* coders/msl.c (ProcessMSLScript): Another attempt to properly fix + oss-fuzz 32263 "graphicsmagick:coder\_MSL\_fuzzer: + Heap-use-after-free in ProcessMSLScript" without causing new + problems. + +2021-03-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (ProcessMSLScript): Fix oss-fuzz 32263 + "graphicsmagick:coder\_MSL\_fuzzer: Heap-use-after-free in + ProcessMSLScript". + +2021-03-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* Magick++/lib/Image.cpp (Magick::Image::write): Due to the design + of ImageToBlob(), it is possible for data to be returned although + an exception was thrown. Deposit it in the Blob so that it will + be freed. May finish fixing oss-fuzz 31965 + "graphicsmagick:coder\_MSL\_fuzzer: Indirect-leak in MagickMalloc". + +2021-03-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (ProcessMSLScript): Attempt to address leak of + "msl\_image". May fix oss-fuzz 31965 + "graphicsmagick:coder\_MSL\_fuzzer: Indirect-leak in MagickMalloc". + +2021-03-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/dcm.c (DCM\_ReadNonNativeImages): Enforce that image depth + is in the supported range of 1-16. Embedded PGX was observed to + cause JasPer to report a component depth of 20 bits. Fixes + oss-fuzz issue 31373 "graphicsmagick:coder\_DCM\_fuzzer: + Heap-buffer-overflow in DCM\_SetupRescaleMap". + +2021-03-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/svg.c (SVGError): Force xml parser input state to + XML\_PARSER\_EOF state upon error to abort parsing. + + \* coders/msl.c (MSLError): Force xml parser input state to + XML\_PARSER\_EOF state upon error to abort parsing. Fixes oss-fuzz + 31401 "graphicsmagick:coder\_MSL\_fuzzer: Timeout in + coder\_MSL\_fuzzer". + +2021-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (ProcessMSLScript): Replicate clean-up actions + which should already be done by MSLPopImage(). Trying to address + oss-fuzz 31259 "graphicsmagick:coder\_MSL\_fuzzer: Direct-leak in + MagickMalloc", which I have not been able to reproduce. + + \* magick/tsd.c (MagickTsdKeyDelete): Fix memory leak of key values + array at exit when use of pthread or WIN32 TSD APIs is disabled. + +2021-03-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (MSLStartElement): Consistently verify that + attributes are non-NULL before calling TranslateText(). Fixes + oss-fuzz 31779 "graphicsmagick:coder\_MSL\_fuzzer: ASSERT: image != + (Image \*) NULL". + + \* README.txt: Add mention of libdeflate library, since it is an + optional dependency of the next libtiff release, and might be + required to link if libtiff itself depends on it. + + \* configure.ac (MAGICK\_DEP\_LIBS): Liblzma is a libtiff dependency. + GraphicsMagick does not directly use liblzma. Do not include + liblzma as direct dependency for the modules build. + +2021-03-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/svg.c (ProcessStyleClassDefs): Fix non-terminal execution + while traversing "active" list based on a patch by Gregory J + Wolfe. Addresses oss-fuzz 31663 + "graphicsmagick:coder\_SVGZ\_fuzzer: Timeout in coder\_SVGZ\_fuzzer". + +2021-03-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/svg.c (ProcessStyleClassDefs): Corrected fix for oss-fuzz + 31234 "graphicsmagick:coder\_SVG\_fuzzer: Direct-leak in + MagickMalloc" based on a patch by Gregory J Wolfe. + +2021-02-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* configure.ac: Add tests for Jasper jp2\_decode(), jpc\_decode(), + and pgx\_decode(). + + \* coders/jp2.c (ReadJP2Image): Call jp2\_decode(), jpc\_decode(), or + pgx\_decode(), directly. Using jas\_image\_decode() makes us subject + to Jasper's own format determination, which may include file + formats we don't want to support via Jasper. + + \* fuzzing/oss-fuzz-build.sh: Disable support for Jasper codecs we + don't want or need. + +2021-02-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (MSLStartElement): Fix assertion in TranslateText() + when there are no attributes available. Addresses oss-fuzz 31307 + "graphicsmagick:coder\_MSL\_fuzzer: ASSERT: image != (Image \*) + NULL". + + \* coders/svg.c (ProcessStyleClassDefs): Fix memory leak upon + malformed class name list. Addresses oss-fuzz 31234 + "graphicsmagick:coder\_SVG\_fuzzer: Direct-leak in MagickMalloc". + (ProcessStyleClassDefs): Fix non-terminal loop and huge memory + allocation caused by self-referential list. Not sure if + implementation is as intended, but it does not crash. Addresses + oss-fuzz 31391 "graphicsmagick:coder\_SVG\_fuzzer: Out-of-memory in + coder\_SVG\_fuzzer". + (SVGReference): Fix memory leak when parser node is null. + Addresses oss-fuzz 31286 "graphicsmagick:coder\_SVGZ\_fuzzer: + Direct-leak in xmlNewReference". + +2021-02-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/msl.c (MSLCDataBlock): Fix leak of value from + xmlNewCDataBlock(). Addresses oss-fuzz 31400 + "graphicsmagick:coder\_MSL\_fuzzer: Direct-leak in + xmlNewCDataBlock". + +2021-02-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/svg.c (ProcessStyleClassDefs): Fix non-terminal loop + caused by a self-referential list which results in huge memory + usage. Addresses oss-fuzz 31238 "graphicsmagick:coder\_SVG\_fuzzer: + Out-of-memory in coder\_SVG\_fuzzer". + +2021-02-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/svg.c (SVGStartElement): Reject impossibly small bounds + and view\_box width or height. Addresses oss-fuzz 31224 + "graphicsmagick:coder\_SVG\_fuzzer: Divide-by-zero in + SVGStartElement". + + \* coders/msl.c (MSLPushImage): Only clone attributes if not null. + Should address oss-fuzz 31205 "graphicsmagick:coder\_MSL\_fuzzer: + ASSERT: image != (Image \*) NULL". + + \* coders/jp2.c (ReadJP2Image): Validate that actual file header + does appear to be a supported format regardless of 'magick' being + forced. Jasper appears to dispatch to other libraries if it + detects a known format it supports and then the program exits if + there is a problem. Fixes oss-fuzz 31200 + "graphicsmagick:coder\_JPC\_fuzzer: Unexpected-exit in error\_exit". + +2021-02-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* magick/nt\_base.c (NTGhostscriptFind,NTGhostscriptGetString): + Handle Ghostscript point versions added after 9.52. Fixes + SourceForge issue #636 'Failed to find Ghostscript' with + Ghostscript version 9.53.0+. + + \* fuzzing/oss-fuzz-build.sh: Patch by Paul Kehrer to incorporate + Jasper and libxml2 into the oss-fuzz build. + +2021-02-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* VisualMagick/All/All.vcproj.in: Fixes by sourcer42 + <sourcer42@users.sourceforge.net> for the problem that Visual + Studio is not able to load the All project if the project supports + the x64 target. + +2021-02-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* www/Hg.rst: Document new redundant Mercurial server at OSDN, + "https://hg.osdn.net/view/graphicsmagick/GM". + +2021-02-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* Add explicit cast to float where implicit casts to float from + double were occurring. + + \* magick/utility.c (MagickDoubleToLong): Guard against LONG\_MAX + not directly representable as a double. + +2021-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* magick/utility.c (TranslateTextEx): If image resolution is + impossibly small, then report the default resolution of 72 DPI, or + the equivalent in centimeters if units is in + pixels-per-centimeter. Addresses SourceForge bug #396 "dpi not + retrived (no default value)". I do have some misgivings about + this solution since it is lying about the actual value. Not all + usages of raster images have an associated physical reality and + thus resolution is not necessarily relevant. + +2021-02-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/tiff.c, coders/ps2.c, coders/ps3.c: Libtiff versions + beyond 20201219 want to use types from stdint.h. + +2021-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* magick/monitor.c (MagickMonitorActive): Need to export this + function for use by modules. + +2021-01-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* VisualMagick/bin: Remove hp2xx.exe, mpeg2dec.exe, and + mpeg2enc.exe. There is no value to distributing these pre-built + and flimsy executables in the source package. + + \* filters/analyze.c (AnalyzeImage): Add OpenMP speed-ups. + +2021-01-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* filters/analyze.c (AnalyzeImage): Tidy the structure of the code + a bit. + + \* magick/module.c (ExecuteModuleProcess): Add error reporting for + the case that the expected symbol is not resolved. + +2021-01-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* configure.ac: Remove updates to use recommended forms of AC\_INIT + and AM\_INIT\_AUTOMAKE. There were too many annoying side-effects + to daily development from these changes. Perhaps they will be + re-visited if solutions for Autotools regeneration issues are + found. + +2021-01-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* magick/render.c (InverseAffineMatrix): Avoid possible division + by zero or absurdly extreme scaling in InverseAffineMatrix(). + Fixes oss-fuzz 28293 "Divide-by-zero - InverseAffineMatrix". + +2021-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* configure.ac (CONFIG\_STATUS\_DEPENDENCIES): Regenerate + configure.ac if ChangeLog or version.sh is updated. + +2021-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/pdf.c (WritePDFImage): Converting a TIF to a PDF set the + page MediaBox to the TIFF dimensions in pixels while the CropBox + is set in local context dimensions. The latter is correct, the + former is not. Set the MediaBox to the proper dimension in local + context. Should be the same in this context. Patch by Hubert + Figuiere and retrieved from SourceForge patch #64 "Incorrect + MediaBox in PDF export". + + \* magick/pixel\_cache.c: Memory cache implementation of pixel cache + now uses resource limited memory allocator. It was previously + resource limited, but by using the resource allocation APIs + directly. + +2021-01-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/tiff.c: Remove unintended double-charging for memory + resource. Remove explicit memset where possible. + +2021-01-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* coders/gif.c (ReadGIFImage): Fix memory leak of global\_colormap + if realloc of memory for comment fails. Fixes oss-fuzz 29316 + "Direct-leak in MagickMalloc". + + \* coders/meta.c (ReadMETAImage): Fix double-free if blob buffer + was reallocated after being attached to blob. Fixes oss-fuzz + 29193 "Heap-double-free in MagickFree". + +2021-01-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* configure.ac: Updates to use recommended forms of AC\_INIT and + AM\_INIT\_AUTOMAKE. This was/is painful due to how development + snapshot versioning is handled. The version string produced for + the snapshot version will now contain the snapshot date. Effort + has been made to avoid other impacts due to AC\_INIT's enforcements + for how version information is used. + +2021-01-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* PerlMagick/Magick.xs: Remove GCC warnings which spewed out at + increased warning levels. + + \* magick/magick\_types.h.in: Hide definitions not intended for the + rest of the world under "if defined(MAGICK\_IMPLEMENTATION)". + +2021-01-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> + + \* configure.ac: Skip library symbol tests for gdi32 since these + fail with the MSYS2 w64-i686 compiler and well as i686 Cygwin. + The failures caused a build regression for i686 MSYS2/Cygwin. + + \* Copyright.txt: Copyright year updates and ChangeLog rotation for + the new year. |