GraphicsMagick ChangeLog - 2016
2016-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/pnm.c (WritePNMImage): Support writing GRAYSCALE PAM format. Before this fix, grayscale output was marked as type BLACKANDWHITE. Problem was reported by Aaron Boxer via email on December 31, 2016.
TclMagick/generic/Makefile.am: Applied patch by Massimo Manghi (plus some fixes by me) to add a 'libttkcommon' shared library to contain codde common to the TclMagick/TkMagick loadable modules, and particularly to allow TkMagick to access TclMagick functions without depending on dlopen() with RTLD_GLOBAL behavior.
2016-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/compare.c (DifferenceImage): Fix all-black difference image if an input file is colormapped. Resolves SourceForge issue #404 "Difference file does not work if PNG ".
2016-12-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/txt.c (ReadTXTImage): Fix Coverity issue 55866 "Resource leak".
magick/enum_strings.c (StringToCompositeOperator): Fix Coverity issue 139296 "Constant expression result".
magick/channel.c (ImportImageChannelsMasked): Fix Coverity issue 139297 "Constant expression result". This was a bug but only in terms of reduced performance, not results.
Magick++/lib/Drawable.cpp (PathSmoothCurvetoRel::operator): Fix Coverity issue 139301 "Using invalid iterator". (PathSmoothCurvetoRel::operator): Fix Coverity issue 139302 "Using invalid iterator"
magick/attribute.c: From SourceForge patches #47 "GraphicsMagick-1.3.25-get-exif-attribute-gps-fix.patch" and "GraphicsMagick-1.3.25-set-exif-orientation-fix.patch" by Troy Patteson with description (related to provided Coverity reports in coverity.txt): Those coverity errors indicate a problem with the earlier patch I sent you to fix getting the EXIF orientation when the GPS IFD occurs before the EXIF IFD. Although the patch fixed that issue it introduced a new issue in that GPS tags could no longer be retrieved. This occurs because the gpsfound flag is set when the GPS IFD is pushed onto the stack but then cleared immediately when breaking out of the loop processing the directory entries for the current IFD. The solution is to push the gpsfound flag onto the stack as well as it needs to be set when the GPS IFD is popped off the stack rather than being set straight away.
The second coverity error relates to gpsoffset not being set in FindEXIFAttribute(). The code that sets gpsoffset in GenerateEXIFAttribute() was embedded in the code that gets tags values which was removed in FindEXIFAttribute() as only the DE offset is required. I have removed the need for gpsoffset and just computed the GPS IFD offset when pushing it onto the stack in the same way the EXIF IFD offset is computed.
2016-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/attribute.c: From SourceForge patches #47 "GraphicsMagick-1.3.25-5-set-exif-orientation.patch" by Troy Patteson with description: Rotating an image without resetting the EXIF orientation tag is problematic as follow-on viewers that support the EXIF orientation tag may incorrectly rotate the image a second time. For JPEG images, the current solution is to either strip the image, remove the EXIF profile or modify the EXIF data of the written image with other software. This patch adds the ability to set the orientation tag in the EXIF profile via the SetImageAttribute on attribute EXIF:Orientation provided the EXIF orientation already exists. AutoOrientImage() has been modified to set the EXIF orientation tag on successful rotation of the image.
The implementation is less than ideal. The EXIF profile must be duplicated because it is returned read-only from the profiles map. Large amounts of the GenerateEXIFAttribute() function has been duplicated in a function called FindEXIFAttribute() which returns the offset in the EXIF profile of a given tag ID. Once found, the orientation tag value is updated accordingly and the new EXIF profile set. Despite the patches shortcomings, I believe it is preferable to leaving the EXIF orientation tag unchanged after auto-orienting the image.
wand/magick_wand.c (MagickClearException): From SourceForge patches #47 "GraphicsMagick-1.3.25-1-wand-clear-exception.patch" by Troy Patteson with description: This patch adds the ability to clear the last Wand exception. This is particularly useful to clear any exception on the Wand before calling MagickReadImage() which can return success with a warning exception such as "JPEG data: premature end of data segment". (MagickRemoveImageOption): From SourceForge patches #47 "GraphicsMagick-1.3.25-2-wand-remove-image-option.patch" by Troy Patteson with description: There is MagickSetImageOption() to set options like JPEG preserve-settings but no way to remove the option once set. Since the mechanism to remove image options already exists in lower-level API there seems no reason not to expose it in the Wand API. (MagickGetImageOrientation, MagickSetImageOrientation): From SourceForge patches #47 "GraphicsMagick-1.3.25-3-wand-get-set-orientation.patch" by Troy Patteson with description: MagickGetImageOrientation returns the internal orientation setting which is useful to know to determine whether an image needs rotation. The function to set the orientation is less useful as it only sets the internal orientation setting which is only used when writing out TIFF files. A future patch addresses this issue. (MagickAutoOrientImage): From SourceForge patches #47 "GraphicsMagick-1.3.25-4-wand-auto-orient.patch" by Troy Patteson with description: This patch adds auto-orient image to the Wand API.
2016-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
TclMagick/{configure.ac, Makefile.am}: Applied patches by Massimo Manghi to use TEA tcl.m4 version 3.9.
2016-11-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/gif.c (DecodeImage): Applied fixes by Tianyu Lang for "Excessive LZW string data" problem leading to "Corrupt image" report while reading some GIF files.
2016-11-18 Glenn Randers-Pehrson <glennrp@simple.dallas.tx.us>
doc/options.imdoc, doc/config_files.imdoc, doc/benchmark.imdoc: Fixed some indentation in the documentation.
2016-10-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
acinclude.m4 (LIBS): Fix memory leaks in GM_FUNC_MMAP_FILEIO macro test-case so that it can be used successfully with ASAN compilation options.
magick/blob.c: Eliminate unused variable compiler warnings when HAVE_MMAP_FILEIO is not defined.
2016-10-24 Fojtik Jaroslav <JaFojtik@seznam.cz>
coders/mat.c Ability to read multiple images from Matlab V4 format.
2016-10-21 Glenn Randers-Pehrson <glennrp@simple.dallas.tx.us>
*coders/png.c (ReadOneJNGImage): Enforce spec requirement that the dimensions of the JPEG embedded in a JDAT chunk must match the JHDR dimensions. This issue was assigned CVE-2016-9830 on 2016-12-04. Please note that GraphicsMagick's pixel, width, and height default limits are often greater than the dimension limits of JNG and JPEG so the user should add explicit limits (if needed) to prevent unexpected memory consumption from properly-constructed JNG files with large dimensions.
*doc/options.imdoc (-strip): Added a caution to not use the -strip option to remove author, copyright, and license information when redistributing an image that requires them to be retained.
*doc/options.imdoc (-comment and -label): Document the fact that only one comment or label is stored, and how they are stored in PNG files.
2016-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/sgi.c (ReadSGIImage): Adjusts some variable types and lessen the amount of casting.
2016-10-09 Glenn Randers-Pehrson <glennrp@simple.dallas.tx.us>
coders/png.c (ReadJNGImage): Quiet COVERITY issue about a potential memory leak.
2016-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/xcf.c (ReadXCFImage): Fix memory leak of layer_info for some recently added error-return paths.
2016-10-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/sgi.c (ReadSGIImage): For RLE SGI image, defer memory allocations for as long as possible and allow the file to prove itself worthy before making the largest allocations. This helps with rejecting bogus RLE files while avoiding rejecting valid files.
2016-10-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/tiff.c (ReadTIFFImage): If TIFF uses Old JPEG compression, then read using full tiles or strips. Solves "Improper call to JPEG library in state 0. (LibJpeg)." error. Problem was reported via email on October 6, 2016 by John Brown.
2016-10-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/attribute.c (GenerateEXIFAttribute): Fixed SourceForge bug 400 "Exif orientation unknown for some JPEG files". Patch submitted by Troy Patteson.
2016-10-02 Fojtik Jaroslav <JaFojtik@seznam.cz>
coders/wpg.c Add sanity check for palette. Merge RemoveLastImageFromList+AppendImageToList to ReplaceImageInList. Possible heap overflow of colormap in Q8 build was assigned CVE-2016-7996. Assertion crash due to blob != NULL was assigned CVE-2016-7997.
2016-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/meta.c (parse8BIM): Fix unsigned underflow leading to heap overflow when parsing 8BIM chunk. Problem was reported by Marco Grassi via email on October 1, 2016. Problem was already known (but not fixed) based on comments in the code. This issue has been assigned CVE-2016-7800.
2016-09-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/xcf.c: Improve the robustness of the XCF reader by adding more error checking.
2016-09-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/rle.c (RLEConstrainColormapIndex): Was not constraining colormap index like it should be. This problem was added on 2016-09-23.
www/thanks.rst: Added Moshe Kaplan to Thanks.
www/Hg.rst: Mercurial URL fixes. Patch from Mark Mitchell.
www/programming.rst: Updated programming APIs page.
2016-09-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/pixel_cache.c (OpenCache): Trace ExtendCache() failures.
2016-09-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/sgi.c (ReadSGIImage): Fix unexpectedly large memory allocation with corrupt SGI file provided via email by Agostino Sarubbo on September 15, 2016.
coders/rle.c (ReadRLEImage): Only report an invalid colormap index once. Fixes slowness problem with corrupt file provided via email by Agostino Sarubbo on September 15, 2016.
2016-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
www/thanks.rst: Added a 'thanks' page.
2016-09-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
PerlMagick/MANIFEST: Fix content of PerlMagick MANIFEST.
2016-09-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/pcx.c (ReadPCXImage): Check that filesize is reasonable given header. Fixes excessive memory allocation followed by eventual file truncation error for corrupt file. Problem was reported via email by Agostino Sarubbo on 2016-09-10.
coders/sgi.c (ReadSGIImage): Check that filesize is reasonable given header. Fixes excessive memory allocation followed by eventual file truncation error for corrupt file. Problem was reported via email by Agostino Sarubbo on 2016-09-09.
coders/sct.c (ReadSCTImage): Fix stack-buffer read overflow while reading SCT header. Problem was reported via email by Agostino Sarubbo on 2016-09-09.
coders/svg.c: Fix Coverity issue 135772 "RESOURCE_LEAK" and issue 135829 "Null pointer dereferences". None of these issues were new, but Coverity noticed them now. Reflowed source to GNU C style for consistent indentation and so it does not fight with my editor.
2016-09-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/common.h (MAGICK_HAS_ATTRIBUTE): Coverity is allergic to __has_attribute() so don't use it for Coverity builds.
2016-09-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
www/index.rst: Update for 1.3.25 release.
version.sh: Update library versioning for 1.3.25 release.
NEWS.txt: Make sure is up to date.
Various fixes for minor issues noticed when compiling under Visual Studio.
2016-08-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/studio.h (MAGICK_CACHE_LINE_SIZE): Apply patch from Gentoo Linux to increase MAGICK_CACHE_LINE_SIZE to 128 when __powerpc__ is defined.
2016-08-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
NEWS.txt: Updated with latest changes.
2016-08-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/rle.c (ReadRLEImage): Reject truncated/absurd Utah RLE files. Problem was reported by Agostino Sarubbo on August 19, 2016. This problem was assigned CVE-2016-7448 after the 1.3.25 release.
2016-08-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/tiff.c (ReadTIFFImage): Fix heap-based buffer read overflow. TIFF sized attibutes were not being properly copied to a null-terminated string if the value was not null terminated. Problem was reported by Agostino Sarubbo on August 18, 2016. This problem was assigned CVE-2016-7449 after the 1.3.25 release.
2016-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lcms/src/cmstypes.c (Type_MLU_Read): "Added an extra check to MLU bounds", change based on github mm2/Little-CMS commit 5ca71a7bc18b6897ab21d815d15e218e204581e2 and announced to the oss-security list by Ibrahim M. El-Sayed on Mon, 15 Aug 2016.
2016-08-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
webp: Updated bundled libwebp to release 0.5.1.
libxml: Updated bundled libxml2 to release 2.9.4.
lcms: Updated bundled lcms2 to release 2.8.
png: Update bundled libpng to release 1.6.24.
coders/jpeg.c (ReadJPEGImage): Log setting resolution and resolution units due to JFIF marker.
coders/sgi.c (SGIDecode): Fix integer overflow of size type in Win64 build where sizeof(long) < sizeof(size_t).
2016-08-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders, magick: Compile clean using GCC with -std=c90.
magick/describe.c (DescribeImage): The 'identify' and 'info' functionality only shows the pixel read rate if image was not read in 'ping' mode. Provide seconds timing with 6 digits of precision since that is what is needed.
2016-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/describe.c (DescribeImage): Include milliseconds resolution in elapsed time output.
magick/timer.c (ElapsedTime): Use clock_gettime() (when available with default linkage) to obtain elapsed time.
2016-08-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/yuv.c (WriteYUVImage): Fix benign clang compiler warning regarding "variable 'x' is incremented both in the loop header and in the loop body".
configure.ac: Fixes to use clang's OpenMP runtime library (-lomp) for clang 3.8 and later. Specifically tested with clang 3.8 on Ubuntu 16.04 'xenial'. Problem was reported by Holger Hoffstätte via private email.
NEWS.txt: Bring up to date with latest changes.
2016-07-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/render.c (DrawImage): Reject abnormally absurd gradient size requests (many absurd requests are still allowed). Provide detailed error reports when a gradient is rejected.
coders/svg.c: Support units for 'stroke-dashoffset'.
2016-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/annotate.c (EscapeParenthesis): In private email on 2016-07-07, Gustavo Grieco notified us of a heap overflow in EscapeParenthesis(). I was not able to reproduce the issue but changed the implementation with the suspicion that the implementation has a bug, and due to noticing arbitary limits and inefficiency. This issue was assigned CVE-2016-7447 after the 1.3.25 release.
2016-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/render.c (DrawImage): Fix absolute and arbitrary gradient dimension sanity checks which caused gradient requests to fail. Resolves SourceForge issue #392 "SVG 'push defs' fails (Debian bugs 829063 and 828120)".
2016-06-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
www/security.rst: Add discussion of SVG format and SSRF vulnerability.
2016-06-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/svg.c (ReadSVGImage): Assure that SVGInfo data is freed when XMP parsing is aborted due to an error.
2016-06-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
NEWS.txt: Updated NEWS with changes since last release.
www/security.rst: Add a page about GraphicsMagick security.
2016-06-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/render.c (DrawPrimitive): Over-aggressive error reporting was causing failures when elements were "drawn" off-image. Resolves SourceForge issue #389 "Non-conforming drawing primitive definition (line)".
2016-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/render.c (DrawImage): Fix problem while reading file "tnamkejarz.svg.2532308010849170049" provided via private email from Gustavo Grieco on May 31, 2016.
magick/utility.c (MagickGetToken): Fix problem while reading file "vqxwatmqmi.svg.-3669039972557308254" provided via private email from Gustavo Grieco on May 31, 2016.
2016-05-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
NEWS.txt: Update for 1.3.24 release.
www/Changes.rst: Mention 1.3.24 release.
www/index.rst: Update for 1.3.24 release.
version.sh: Update library ABI information in preparation for 1.3.24 release.
NEWS.txt: Updated NEWS to reflect fixes and issues.
2016-05-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
NEWS.txt: Updated with latest news.
magick/blob.c (OpenBlob): Remove support for reading input from a shell command, or writing output to a shell command, by prefixing the specified filename (containing the command) with a '|'. This feature provided a remote shell execution opportunity (CVE-2016-5118).
coders/mat.c (ReadMATImage): Validate that MAT frames is not zero.
2016-05-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/render.c (DrawImage): Be less optimistic when estimating the number of points required to represent a path. This should help address CVE-2016-2317 "Heap buffer overflow". This resolves SourceForge issue #275 "Applying Clipping Path to high resolution JPG".
2016-05-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/render.c (DrawImage): Fix problem while reading file "pxypjhfdxf.svg.7406476585885697806" provided via via private email from Gustavo Grieco on May 24, 2016.
coders/svg.c: Fix problem while reading file "pxypjhfdxf.svg.308008972284643989" provided via private email from Gustavo Grieco on May 24, 2016.
2016-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/svg.c ("C"): Support font-size "medium".
2016-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
NEWS.txt: Updated NEWS.txt to reflect latest changes.
magick/render.c (DrawImage): Added DrawImage() recursion detection/prevention.
coders/svg.c (ReadSVGImage): Add basic primitive argument validation.
magick/render.c (DrawImage): Add basic primitive argument validation.
2016-05-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/url.c (ReadURLImage): Reading "file://" URLs was not working. Now file URLs are working.
2016-05-21 Glenn Randers-Pehrson <glennrp@simple.dallas.tx.us>
coders/png.c: Respect JPEG limits (65535x65535) and user width and height limits from "-limit" while reading or writing JNG files.
2016-05-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/url.c: Don't hide HTTP, FTP, and FILE URL support from '-list format' output. Ignore HTTP, FTP, and FILE as a useful file extension for determing the file format.
2016-05-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/render.c (ConvertPathToPolygon): Make sure that first edge is initialized. Make sure that points is not null.
2016-05-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/render.c (DrawImage): Fixed segmentation violation while reading file "275077586554139424.lqxdgqxtfs.svg" provided via private email from Gustavo Grieco on May 15, 2016. This is due to another CVE-2016-2317 related issue.
2016-05-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/svg.c ("C"): Fixed problems while reading files "aaphrbkwwe.svg.-1899680443073025602", "aaphrbkwwe.svg.-5751004588641220738", "aaphrbkwwe.svg.-8875730334406147537", and "aaphrbkwwe.svg.4495884156523242589" provided via private email from Gustavo Grieco on February 8, 2016.
2016-05-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/dib.c (ReadDIBImage): Verify that DIB file data is sufficient to meet claims made by file header. Validate image planes. Fixes Fixes problem reported by Hanno Böck on May 8th, 2016 via private email entitled "malloc issue in ReadDIBImage".
2016-05-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/msl.c (RegisterMSLImage): Ignore the file extension on MSL files. The only way to read an image from a MSL file (as opposed to explicitly running a MSL script with 'conjure') is by reading using a filename specification like "msl:filename". This is done for security reasons.
magick/render.c (DrawPrimitive): Fix Coverity issue 126378 "Resource leak".
coders/mat.c (DecompressBlock): Fix Coverity issue 126379 "Resource leak".
magick/render.c (DrawImage): Fix Coverity issue 126380 "Resource leak".
2016-05-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/render.c (DrawPrimitive): Sanity check the image file path or URL before passing it to ReadImage().
config/delegates.mgk.in: Pare down delegates.mgk to reduce security exposure due to external programs not under our control.
2016-05-08 Fojtik Jaroslav <JaFojtik@seznam.cz>
coders/mat.c Typo fix - matrix has nothing to do with PostScript.
2016-05-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/mat.c (DecompressBlock): Don't hang on a corrupt deflate stream when reading matlab v6 file. Fixes problem reported by Hanno Böck on May 8, 2016 via private email entitled "hang of matlab input file".
2016-05-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/image.c (SetImageInfo): Undocumented "TMP" magick prefix no longer removes the argument file after it has been read. This functionality is only used to support the "show" delegate which is used by options in the 'display' program which need to display a generated image in a new instance of 'display'. The "show" delegate is used by writing a temporary file to be viewed, and which should be removed before the program quits. Since the "TMP" feature was originally implemented, GraphicsMagick added a temporary file management subsystem which assures that temporary files are removed so this feature is not needed.
coders/tiff.c (ReadTIFFImage): Fix heap overflow with file "gkkxrilssm.tiff.-4678010562506843336" provided by Gustavo Grieco on February 8, 2006 via private email.
coders/viff.c (ReadVIFFImage): Fix problem with a very large malloc in sample file provided by Hanno Böck on May 7, 2016 with subject "large malloc in ReadVIFFImage".
coders/mvg.c (RegisterMVGImage): Do not auto-detect MVG format based on file extension. MVG files can then only be read by adding a "MVG:" prefix to the file name. There is already no auto-detection of MVG based on content.
2016-05-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/xpm.c (ReadXPMImage): Limit the number of XPM colors and assure array initialization. Fixes bad behavior with a sample file provided by Hanno Böck on May 6, 2016 with subject "Invalid free in ReadXPMImage".
coders/pcx.c (ReadPCXImage): Limit the number of PCX image planes allowed. Fixes an unreasonable memory allocation in a sample file provided by Hanno Böck on May 5, 2016.
2016-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
config/delegates.mgk.in: Gnuplot files are inherently insecure. Remove delegates support for reading them. Reported by John Lightsey via private email. Added -dSAFER to Ghostscript invokations in delegates.mgk for more secure execution. Reported by David Chan via SourceForge bug "#386 ghostscript delegates should explicitly use -dSAFER.".
magick/constitute.c (ReadImages): Avoid possible infinite ReadImage() recursion.
2016-05-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/render.c (DrawPolygonPrimitive): Fix divide by zero exception encountered while reading file "sigfpe.svg" posted by Gustavo Grieco on May 1, 2016 to the oss-security mailing list with subject "CVE request: DoS in multiple versions of GraphicsMagick". (DrawDashPolygon): Fix endless loop problem caused by negative stroke-dasharray arguments. Resolves problem observed while reading file "circular.svg" posted by Gustavo Grieco on May 1, 2016 to the oss-security mailing list with subject "CVE request: DoS in multiple versions of GraphicsMagick".
magick/import.c (ImportViewPixelArea): Fix assertion while reading TIFF file gkkxrilssm.tiff.105123337066 provided by Gustavo Grieco.
2016-04-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/locale.c (ReadLOCALEImage): Make sure to close blob before returning.
coders/svg.c ("C"): Provide a hack work-around for double-quoted font-family argument.
magick/render.c (DrawImage): Make SVG path and other primitive parsing more robust. Fixes SEGV when reading files provided by CVE-2016-2318 test cases. Fixes CVE-2016-2318 completely.
2016-04-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/render.c (DrawImage): Fix heap buffer overflow when reading aaphrbkwwe.svg.-1114777018469422437 from CVE-2016-2317 test cases. This resolves CVE-2016-2317 completely.
2016-04-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/command.c (MogrifyImageCommand): Added mogrify -preserve-timestamp option to preserve file access and modification timestamps. Contributed by Niko Rosvall via SourceForge patch #45 "preserve-timestamp option for mogrify command."
2016-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/blob.c: Added ReadBlobLSBSignedShort(), ReadBlobMSBSignedShort(), ReadBlobLSBSignedLong(),ReadBlobMSBSignedLong(), WriteBlobLSBSignedShort(), WriteBlobLSBSignedLong(), WriteBlobMSBSignedLong(), WriteBlobMSBSignedShort() for doing I/O on signed integer types without the need for dangerous casts or unexpected values due to signed/unsigned conversion.
2016-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
NEWS.txt: Updated with latest changes.
magick/constitute.c (ReadImage): Added asserts to check that the I/O blob is not still open in the returned image since this causes problems.
magick/blob.c (CloneBlobInfo): Use a cloning approach which does not require manually keeping structure members in sync.
coders/msl.c (ProcessMSLScript): Need to close I/O blob before returning.
coders/psd.c (ReadPSDImage): Assure that allocated image is not dereferenced before checking if it is NULL. Check some memory calculations for overflow. (ReadPSDImage): Need to close I/O blob before returning.
coders/dib.c (ReadDIBImage): Use DestroyBlob() rather than DestroyBlobInfo().
coders/bmp.c (ReadBMPImage): Use DestroyBlob() rather than DestroyBlobInfo().
magick/blob.c: Improve blob tracing.
2016-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/bmp.c (ReadBMPImage): Fix reading 24-bit Microsoft BMP which claims to have a colormap.
2016-04-13 Fojtik Jaroslav <JaFojtik@seznam.cz>
PerlMagick/t/input_complex_lsb_double_V4.mat Demo Matlab V4 complex file.
coders/mat.c Missing break added.
2016-04-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/xpm.c (ReadXPMImage): Fix SourceForge issue #361 "out-of-bounds read in coders/xpm.c:150:24"
coders/psd.c (ReadPSDImage): Add some defensive code to assure that image layers are not freed twice.
2016-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/log.c (InitializeLogInfo): Simplify LogInfo structure and its allocation in order to lessen the amount of fixed overhead.
2016-04-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/jp2.c (WriteJP2Image): Fix SourceForge issue #378 "jp2: impossible to create lossless jpeg-2000". With this fix, specifying 'define jp2:rate=1.0' or '-quality 100' results in a lossless JP2 file.
2016-04-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/common.h: Update for GCC 5.
PerlMagick/MANIFEST: Update PerlMagick manifest.
PerlMagick/t/{read.t, write.t}: Add tests for MAT v4.
2016-04-03 Fojtik Jaroslav <JaFojtik@seznam.cz>
coders/mat.c Matlab V4 attempt to read complex part of data.
2016-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
PerlMagick/t/features.pl.in: Provide a way that PerlMagick feature tests can test if a feature is supported. Use it to make the PSD test optional.
coders/Makefile.am: Only build PSD module if ENABLE_BROKEN_CODERS is enabled.
magick/module.c (UnloadModule): Only invoke the module unregister function if it is defined. The module register function is not defined if either the register or unregister functions were not found in the module which was loaded.
2016-04-02 Fojtik Jaroslav <JaFojtik@seznam.cz>
coders/mat.c Matlab V4 files are also rotated.
PerlMagick/t/input_gray_lsb_double_V4.mat Demo Matlab V4 file.
2016-04-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/magick.c (GetMagickInfo): Only declare that ExceptionInfo argument is not used if modules are not supported.
2016-03-28 Fojtik Jaroslav <JaFojtik@seznam.cz>
coders/mat.c Attempt to read Matlab V4 files.
2016-03-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
magick/image.c (DestroyImage): Simply return if image is NULL since it is more user-friendly.
magick/shear.c (RotateImage): Fix Coverity issue 124519 "Logically dead code".
magick/effect.c (BlurImage): Fix Coverity issue 124520 "Dereference after null check".
coders/pdb.c (WritePDBImage): Fix SourceForge bug #360 "out-of-bounds read in utilities/gm+0x80fcc71) (PDB reader)".
coders/meta.c (convertHTMLcodes): Fix SourceForge bug #373 "out-of-bounds read in coders/meta.c:444:50" (ReadMETAImage): Fix SourceForge bug #364 "out-of-bounds write in coders/meta.c:1331:7".
2016-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/sgi.c (ReadSGIImage): Fix SourceForge bug #366 "out-of-bounds write in coders/sgi.c:528:4" and bug #369 "out-of-bounds write in coders/sgi.c:535:4".
coders/rle.c (ReadRLEImage): Fix SourceForge bug #371 "out-of-bounds read in coders/rle.c:633:39".
2016-03-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/dib.c (ReadDIBImage): Fix SourceForge bug #367 "out-of-bounds read in coders/dib.c:706:13" and bug #370 "out-of-bounds read in coders/dib.c:716:15".
coders/pict.c (ReadPICTImage): Fix SourceForge bug #365 "out-of-bounds read in magick/image.c:1305:3"
magick/utility.c (GetPageGeometry): Fix SourceForge bug #374 "out-of-bounds write in magick/utility.c:4355:7"
2016-03-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/miff.c (ReadMIFFImage): Fix SourceForge bug #376 "SIGABRT in magick/colorspace.c:1052".
magick/shear.c (RotateImage): Fix SourceForge bug #375 "SIGABRT in magick/image.c:1230".
coders/sun.c (DecodeImage): Fix SourceForge bug #368 "out-of-bounds read in coders/sun.c:223:17" and bug #363 "out-of-bounds read in coders/sun.c:221:16".
2016-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/svg.c (GetUserSpaceCoordinateValue): Fix stack buffer overflow when reading file 'aaphrbkwwe.svg.-632425326915265752' from CVE-2016-2317 problem files. Partial fix for SourceForge bug #358 "CVE-2016-2317 - SVG heap/stack buffer overflows".
magick/utility.c (MagickGetToken): New private function to replace GetToken(). The new function accepts a token buffer length argument. GetToken() is modified to assume a token buffer length 'MaxTextExtent'. All code using GetToken() is updated to use MagickGetToken().
coders/svg.c: Fix heap buffer overflow when reading file "aaphrbkwwe.svg.4495884156523242589" from CVE-2016-2317 problem files. Partial fix for SourceForge bug #358 "CVE-2016-2317 - SVG heap/stack buffer overflows".
2016-03-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/psd.c (ReadPSDImage): Fix SourceForge bug #341 "out-of-bounds read in coders/psd.c:1435". (WriteWhiteBackground): Fix SourceForge bug #350 "SEGV in coders/psd.c:1685". (DecodeImage): Fix SourceForge bug #351 "heap-buffer-overflow in coders/psd.c:142". (ReadPSDImage): Fix SourceForge bug #342 "out-of-bounds write in coders/psd.c:892"
coders/xcf.c (load_tile): Fix SourceForge bug #337 "heap-buffer-overflow in coders/xcf.c:373".
coders/pict.c (WritePICTImage): Fix SourceForge bug #340 "out-of-bounds write in coders/pict.c:1929".
coders/pdb.c (WritePDBImage): Fix SourceForge bug #348 "heap-buffer-overflow in coders/pdb.c:949:26".
coders/xpm.c (ReadXPMImage): Fix SourceForge bug #334 "heap-buffer-overflow in coders/xpm.c:150".
2016-03-09 Fojtik Jaroslav <JaFojtik@seznam.cz>
coders/mat.c Fixed huge image limitation.
2016-03-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/sun.c (WriteSUNImage): Fix SourceForge bug #343 "out-of-bounds write in coders/sun.c:962".
coders/rle.c (ReadRLEImage): Fix SourceForge bug #344 "out-of-bounds write in coders/rle.c:524".
coders/xpm.c (ReadXPMImage): Fix SourceForge bug #335 "out-of-bounds read in coders/xpm.c:154 ".
2016-03-06 Glenn Randers-Pehrson <glennrp@simple.dallas.tx.us>
doc/options.imdoc (-extent): Revised the example to clarify the interaction of -gravity with the "geometry" offsets.
2016-03-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
configure.ac: Add support for --enable-broken-coders which determines if broken or hazardous file format support should be enabled in the build. Currently Adobe Photoshop (PSD) format is included in this category.
Rotate Changelog for new year. Update documentation copyrights for new year.
2016-03-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
tiff/libtiff/tif_config.h (HAVE_SNPRINTF): Define HAVE_SNPRINTF when using Microsoft Visual C++ 14 (Visual Studio 2015) or later. This is based on advice by Pablo Elpuro.
2016-02-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
Magick++/lib/Image.cpp (xResolution): New method to support setting the horizontal resolution with double precision. (yResolution): New method to support setting the vertical resolution with double precision.
www/Hg.rst: Document the ssh public keys for the server hosting the development Mercurial repository.
2016-02-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
coders/xpm.c (ReadXPMImage): Fix SourceForge bug #333 heap-buffer-overflow in coders/xpm.c:409.