GraphicsMagick 1.3.21 released

Bob Friesenhahn <[email protected]> Sat, 28 Feb 2015 19:40:33 -0600 (CST)
Newsgroups gmane.comp.video.graphicsmagick.announce
Message-ID <[email protected]>
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---559023410-94428632-1425174033=:3653
Content-Type: TEXT/PLAIN; format=flowed; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by blade.simplesystems.org
	id t211eX8t017895

GraphicsMagick is a general purpose cross-platform image processing=20
package consisting of utilities, libraries, scripting extensions, and=20
GUIs for dealing with images.  Read about it at=20
"http://www.graphicsmagick.org/".

GraphicsMagick 1.3.21 is now released, and is the 56th release since=20
its first release in 2003.  It contains an abnormally huge number of=20
security fixes due to the kind assistance of security researchers who=20
provided test files which could crash earlier releases of the=20
software, or waste resources.  Any site which might encounter=20
untrusted files should be using this release.

Release files may be downloaded from SourceForge at=20
"https://sourceforge.net/projects/graphicsmagick/files/".

Significant changes that users may need to be aware of in this release=20
are that Magick++ (C++ API) breaks the ABI (API is still 100%=20
compatible) and so any C++ applications using it will need to be=20
re-compiled to use the updated C++ library.  If a C++ application can=20
not be immediately re-compiled, then it may continue to use the=20
Magick++ library from a previous 1.3.X release while using the=20
improved C libraries from this release.  The C ABI is still compatible=20
with all previous 1.3.X releases.

Resource limits for image width and height have been added and the=20
default limits have been set so that width and height fit comfortably=20
within the range of a 32-bit integer (even for 64-bit builds).  The=20
limits may be raised if desired.

The remaining is the full summarized NEWS for this release.  See the=20
ChangeLog files for more detail:

1.3.21 (February 28, 2015)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D

Thanks:

   * Gynvael Coldwind and Mateusz Jurczyk of the Google Security Team
     provided test files which allowed us to find and fix security
     problems in the software.

   * Hanno B=F6ck provided test files which allowed us to find and fix
     security problems in the software.

   * Tobias Ospelt provided test files and advice which allowed us to
     find and fix security problems in the software.

   * Michal Zalewski provided test files which allowed us to find and
     fix security problems in the software.

   * Jodie Cunningham did lots of fuzzing to find issues and set up the
     project on Coverity for automatic analysis.

   * American fuzzy lop was used to produce and discover many of the
     files which caused problems for the software.

   * AddressSanitizer (ASan) was used to detect and isolate memory
     access issues.

   * Valgrind was used to detect and isolate memory access issues as
     well as memory leaks

Special Issues:

   * Due to `GCC bug 53967`_, several key agorithms (e.g. convolution)
     may execute much faster (e.g. 2-3X) for x86-64 and/or when SSE is
     enabled for floating point math (`-mfpmath=3Dsse`) if the GCC option
     `-frename-registers` is used. Default 32-bit builds do not
     experience the problem since they use '387 math.  It is not clear
     in what version of GCC this problem started but it was not noticed
     by the developers until the GCC 4.6 timeframe.  Other compilers do
     not suffer from this bug.  Please lobby the GCC project to fix
     this embarrassing performance bug.

   * Magick++: Any libraries or applications using Magick++ should be
     rebuilt in order to use this new release.  Libraries and
     applications will be able to continue to use prior versions of
     Magick++ without being re-built, while benefiting from updated C
     libraries, provided that the system supports library versioning.

Security Fixes:

   * Annotate: Some requestable text-subsitution attributes caused a
     crash.

   * All formats: Image dimensions are checked to assure that they are
     within limits before proceeding to read the image.

   * BMP: Fix hang (endless loop) for certain files.

   * DCM: Fix crash as well as small heap over-write.

   * DPX: Fix crash due to DPX file reporting more elements than it
     has.

   * MNG: Validate MHDR chunk length to avoid huge memory allocation
     and DOS.

   * PCX: Fix for CVE-2014-8355. Validate file header in order to avoid
     buffer overun later.

   * PDB: Detect arithmetic overflows when calculating buffer sizes.
     Fix crash in writer when image width is not even multiple of 16.
     Fix buffer overrun with 2 and 4-bit PDB image files.

   * PNM: Validate PGM, PPM, and PAM header MaxValue parameter to avoid
     crash on poorly-formed input.

   * PNG: Impose a 10-million limit on dimensions when reading a PNG
     file to avoid denial of service.

   * PSD: Avoid problems caused by huge PSD colormap size.

   * PSD: Fix small stack over-write if more than 99 layers are written
     to PSD format.

   * PSD: Returns immediately if pixel limit was exceeded.

   * RLE: URT RLE reader is now more robust with errant files.

   * SUN: Header validation is now made fully robust, and arithmetic
     overflows in buffer-size calculations are detected to avoid heap
     overwrite.

   * TIFF: Fix crashes for photometrics which may delivery one or three
     samples per pixel (was assuming always three).

   * VIFF: Fixes to prevent buffer overflow.  Validate colormap indexes.

   * Windows delegates: Fix unexpected argument splitting when invoking
     an external delegate program via delegates.mgk.

   * WPG: Fix use of NULL pointers.  Fix buffer overflows.

   * XPM: Detect truncated row and quit with error rather than
     over-running a buffer.

   * XWD: Improve header validation.  Added to UnstableCoderClass since
     the reader for this format should not be entrusted with
     untrustworthy input.

Bug fixes:

   * CIN: Fix problem with text attribute values which are not NULL
     terminated.  Validate sizes claimed by Cineon header.

   * Coverity: Fixes for many issues detected by Coverity scan (see
     ChangeLog).

   * DPX: Fix problem with text attribute values which are not NULL
     terminated.

   * DPX: Fix severe corruption of little-endian 32-bit packed output.
     Corruption was severe enough that it would have been noticed
     immediately.

   * Delegates: Fix possible memory leaks when invoking external
     application.

   * FITS: Properly validate values provided by file header.

   * GIF: Fix use of uninitialized data.

   * JBIG: Fix memory leaks.

   * JNG: Fix double-free error in error path.

   * JPEG: Verify the number of output components before attempting to
     decode the image.

   * Magick++: Image resolutionUnits() was not always returning correct
     value.

   * Magick++: Locking has not been working properly since the code was
     written in 1998.  Apparently the issue has not been significant
     enough to cause run-time issues.

   * ICO: Windows icon reader is now much more robust.

   * MIFF: Reader now quits with an error if zip or bzip2 stream is
     corrupted.

   * MAT: Fix memory leaks.

   * PALM: Reader now reads various input formats (up to version 2)
     correctly whereas it was crashing or otherwise malfunctioning
     before.  More work remains, particularly in the writer.

   * PCX: Eliminate memory leaks in error paths.

   * PDB: In PDB writer, void possible under-allocation due to
     arthimetic overflow when allocating packets.

   * PICT: Fix PICT reader crash with corrupted file.

   * PNG: Fix double-free error in error path.

   * PNG: Fixed handling of transparency when writing indexed PNG.

   * PNG: Avoid reading beyond the end of a tEXt keyword.

   * PSD: Fix error when reading PSDs files which have no layers.

   * RLA: Fix possible crash due to file header.

   * Signal Handling: Signal handling is now more robust and handles
     SIGSEGV and other critical signals.  The sole purpose of the
     default signal handling is to remove any temporary files and quit.
     An informative message is printed for signals other than SIGINT.

   * SUN: Sun raster reader was not completely robust. Now it is.

   * SWF: Fix pixel cache access errors in 'ping' mode.

   * Text annotation: An empty text string is no longer treated as an
     error.

   * Text annotation: Fix regression added in 1.3.19 which caused
     spurious drawing errors to be produced while rendering with text
     when all of the text is off the left-hand side of the image.

   * TIFF: Fix unreliable reading JBIG compressed files by forcing use
     of strip reader rather than sometimes using scanline reader (which
     libtiff's JBIG codec does not support).

   * TIFF: Fix reading or writing planar min-is-white or min-is-black
     images with an associated alpha channel.

   * WebP: WebP writer now writes truely lossless output when
     requested.

   * identify / GetImageStatistics(): Failed to compute statistics for
     the Black channel of CMYK image files.

   * VICAR: Fix problem with continuing to "read" data when there is no
     more data left to read.

   * WMF: Fix memory leaks.

   * WPG: Fix potential DOS due to long reads during an error
     condition.

   * XPM: Avoid strncpy() of overlapping memory.  Fixed memory leaks in
     error paths.  Fixed bad memory access caused by empty file.

New Features:

   * compose: Supports composite operator names similar to the major
     *Magick brand, without losing any any compatibility with previous
     naming.

   * ICO: Windows ICO reader now supports reading PNG-encoded files.

   * Magick++ Geometry: New methods limitPixels() and fillArea() to
     support '@' and '^' geometry qualifiers.  This enancement breaks
     the ABI due to previous use of inline methods and no place to put
     the new flags.

   * Magick++ Image::extent(): New method to place image on sized
     canvas of constant color using gravity.

   * Magick++ Image::formatExpression(): New method format a string
     based on a format similar to command-line -format.

   * Magick++ Image::resize(): New method to resize image specifying
     geometry, filter, and blur.

   * Magick++ STL extentImage: New New function object to invoke image
     extent method.

   * Magick++ Image::quiet().  New method which blocks (ignores)
     warning exceptions when passed a 'true' argument.

   * Resource limits: Added support for image Width and Height limits.
     Default image Width and Height limits are based on the range of a
     32-bit signed integer, even for 64-bit builds which may have
     sufficient numeric range to image an entire galaxy.  Limits may be
     increased as desired.

   * TIFF: Use define tiff:ignore-tags to ignore tags in 'corrupted'
     files with unknown and invalid tags.  Use to read TIFF files which
     otherwise can not be read due to errors.

   * TIFF: Use '-define tiff:report-warnings=3Dtrue' to enable that
     warnings reported by libtiff are thrown as warning exceptions so
     that they may be caught or will be reported at the gm
     command-line.

   * Windows Exceptions: A handler is registered (due to calling
     InitializeMagick()) to capture Windows Exceptions in a similar
     manner to the existing POSIX signal handler.  If an application is
     using the library and wants to provide it own Windows exception
     handling, then it should make any changes after invoking
     InitializeMagick().

Feature improvements:

   * None.

Performance Improvements:

   * None.

Windows Delegate Updates/Additions:

   * PNG: Update bundled libpng to 1.6.16.  Resolves known security
     issues.

   * FreeType: Update bundled Freetype to 2.5.4.  Resolves known
     security issues.

   * WebP: Update bundled WebP to 0.4.2 release.

   * WebP is auto-linked in Visual Studio.

Build Changes:

   * WebP is not included in the build when building with Visual Studio
     6 (1998 vintage compiler!) since it requires more modern C.

Behavior Changes:

   * AVI: Support for this format is removed since the implementation
     was worthless.

   * TIFF: Now uses YCbCr encoding when JPEG compression is requested
     for an RGB image.

--=20
Bob Friesenhahn
[email protected], http://www.simplesystems.org/users/bfriesen=
/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/
---559023410-94428632-1425174033=:3653
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
---559023410-94428632-1425174033=:3653
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Graphicsmagick-announce mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/graphicsmagick-announce

---559023410-94428632-1425174033=:3653--