2015-02-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* www/index.rst: Update for 1.3.21 release.

	* www/Changes.rst: Update for 1.3.21 release.

	* NEWS.txt: Update NEWS for 1.3.21 release.

	* version.sh: Bump/adjust library versioning.

2015-02-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/delegate.c: Fix compilation under Cygwin. Thanks to Marco
	Atzeri for advising us of this problem.

2015-02-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/error.h (ThrowReaderException): More significant
	exceptions (e.g. errors) should overwrite less significant
	exceptions (e.g. warnings) thrown earlier.

	* coders/bmp.c (ReadBMPImage): Detect 32-bit integer overflows and
	other annoyances caused by intentionally broken files.  Also, only
	warn if the file header claims the file is larger than it is since
	this is a benign issue.

	* magick/blob.c (OpenBlob): Fix "magic header bytes" log message
	count value.

2015-02-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Updated NEWS with more changes.

	* Magick++/lib/Magick++/Include.h (Magick): Add GetImageGeometry
	to MagickLib namespace in order to avoid a compilation problem
	noticed with Visual C++ 6.0.

2014-02-22  Jaroslav Fojtik  <JaFojtik@seznam.cz>

	* VisualMagick\configure\configure.cpp Fixed crash.
        Renamed debug to configure_d.exe to prevent mess.

2015-02-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/magick.c (InitializeMagick): Invoke
	NTInitializeExceptionHandlers() under Windows.

	* magick/nt_base.c (NTInitializeExceptionHandlers): Add a new
	private function which disables pop-up Windows on exceptions and
	registers a handler for Windows exceptions to clean up temporary
	files prior to program exit.

	* magick/magick.c (PanicDestroyMagick): Use
	PurgeTemporaryFilesAsyncSafe() rather than PurgeTemporaryFiles().
	(InitializeMagickSignalHandlers): Always register for SIGINT, even
	under Microsoft Windows.

	* magick/tempfile.c (PurgeTemporaryFilesAsyncSafe): New private
	function to clean up temporary files prior to program exit.
	Async-safe so it can be safely called from a signal handler.
	Intentionally leaks memory.

2015-02-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/attribute.c (GenerateEXIFAttribute): Fix crash while
	parsing corrupt EXIF which was reported by Stijn Sanders on
	2015-02-17.

	* Magick++/lib/{Blob.cpp, Image.cpp}: Incorrect lock scope
	resulted in Magick++ locking not actually working to protect
	critical sections in spite of no detected problems with locking
	these past 16 years.  Problem was detected using the
	misc-unused-raii check from clang-tidy and was reported by Hyrum
	Wright.

	* coders/palm.c (ReadPALMImage): Add header logging to writer.
	Writer still seeks and overwrites its own header so logging is not
	entirely accurate yet.

2015-02-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtool: Update GNU libtool to 2.4.6.

	* coders/palm.c (ReadPALMImage): Fix support for transparency in
	PALM reader.

2015-02-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/palm.c (ReadPALMImage): Major re-work of PALM reader.
	More log message improvements.  More header validation.

2015-02-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/palm.c (ReadPALMImage): Improve log messages.  Add more
	header validation.  Check image pixel limits.  Support 'ping'
	mode.

2015-02-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/palm.c (ReadPALMImage): PALM reader now supports 1, 2, 4,
	8, and 16-bit test files we were able to generate using
	'pnmtopalm'.  A progress monitor was added.  Memory leaks in error
	paths were fixed.

2015-02-12  Glenn Randers-Pehrson  <glennrp@simple.dallas.tx.us>

	* coders/png.c: Insert "if (QuantumTick(...))" ahead of
	each "if (!MagickMonitorFormatted(...)".

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

	* coders/rla.c (ReadRLAImage): Assure that header ASCII strings
	are properly terminated.  Resolves Coverity CID 10322.

2015-02-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/nt_base.h (STDERR_FILENO): Provide definitions for
	standard POSIX file numbers so that Visual Studio should compile.
	Fixes SourceForge bug #291 "STDERR_FILENO (used in magick.c) is
	not defined under Windows"

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

	* Magick++/lib/Image.cpp (Image::quiet()): Patch by Dirk Lemstra
	to support silencing warnings in Magick++.  Adds a quiet() method
	which blocks (ignores) warning exceptions when passed a true
	argument.  Warning exceptions are still generated by default.

	* coders/tiff.c: Support '-define tiff:report-warnings=true' 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.

2015-02-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/tiff.c (WriteTIFFImage): Use YCbCr encoding when JPEG
	compression is requested for an RGB image.

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

	* coders/tiff.c (QuantumTransferMode): Fix reading or writing
	planar min-is-white or min-is-black images with an associated
	alpha channel.

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

	* coders/xpm.c (ReadXPMImage): Reading empty XPM file should not
	cause bad memory access.

	* coders/gif.c (DecodeImage): Assure that GIF decoder does not use
	unitialized data.

	* coders/jpeg.c (ReadJPEGImage): Verify that we support the number
	of output components before proceeding to decode the image.

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

	* coders/miff.c (ReadMIFFImage): MIFF needs to stop spinning if
	zlib or bzlib report an error while decompressing.  Solves problem
	with file provided by Jodie Cunningham on 2015-01-25.

	* coders/vicar.c (ReadVICARImage): Fix Vicar reader's dogged
	determination to continue reading when there is nothing left to
	read.  Solves problem with file provided by Jodie Cunningham on
	2015-01-25.

	* magick/magick.c (PanicDestroyMagick): Replace memory allocation
	functions with dummy functions rather than NULL pointers.
	(InitializeMagickSignalHandlers): Register
	MagickPanicSignalHandler() for SIGSEGV.
	(MagickPanicSignalHandler): Produce an informative message for the
	user.
	(MagickSignalHandlerMessage): Include more detailed information
	from the signal handler via a common routine used by default
	signal handlers.

2015-01-25  Glenn Randers-Pehrson  <glennrp@simple.dallas.tx.us>

	* coders/bmp.c (ReadBMPImage): An attempt to address CID 10291.

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

	* magick/nt_base.c (Exit): Changed to return 'void'. Function can
	not return a value if it does not return.

	* magick/error.c (DefaultFatalErrorHandler): Invoke
	PanicDestroyMagick() rather than DestroyMagick().  If we are
	really that short on memory, DestroyMagick() might not work.

	* magick/magick.c (MagickPanicSignalHandler): Only use async-safe
	functions in signal handler.
	(PanicDestroyMagick): New function for emergency release of
	persistent resources just prior to program exit.  Async-safe and
	does not acquire or release any heap memory.

	* magick/export.c: Eliminate two 'clang' warnings.

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

	* coders/pdb.c (ReadPDBImage): Fix typo.

	* coders/cineon.c (ReadCINEONImage): Enforce that Cineon image
	info channels is valid.  Solves problem with file provided by
	Jodie Cunningham on 2015-01-24

	* coders/fits.c (ReadFITSImage): Enforce valid bits-per-pixel
	values.  Add detailed header logging.  Solves problem with file
	provided by Jodie Cunningham on 2015-01-24

2015-01-22  Glenn Randers-Pehrson  <glennrp@simple.dallas.tx.us>

	* coders/png.c (ReadPNGImage): Check length of various MNG
	chunks before using the chunk data.

	* coders/png.c (WriteOnePNGImage): Use png_error() instead of
	throwing an exception so cleanup in the setjmp block can happen,
	including unlocking the semaphore.  Addresses Coverity CID 10184.

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

	* coders/gif.c (WriteGIFImage): Don't use an unchecked value from
	GetImageAttribute(), even if the access succeeded before.
	Resolves Coverity CID 10219.

	* coders/dpx.c (StringToAttribute): Make sure that string is not
	accidentally shortened by one character if it occupies the full
	field size.
	(ReadDPXImage): Validate that the bits per sample claimed by the
	file header is a supported depth before using it further in the
	code.  This might resolve Coverity CID 10071 "Bad shift
	operation".
	(ReadDPXImage): Check for EOF while reading forward to element
	data.  Might solve Coverity CID 10305.

	* coders/dib.c (ReadDIBImage): Resolve Coverity CID 10228 "Integer
	overflowed argument".
	(ReadDIBImage): Hopefully resolve Coverity CID 10268 "Various",
	which is primarily about placing too much trust in the claimed
	number of colors.

	* coders/pnm.c (WritePNMImage): Fix overwrite of status by
	progress monitor.  Remaining issues may lurk within.  May resolve
	Coverity CID 10288.

	* coders/pdb.c: Resolve Coverity CID 11173 "Buffer not null
	terminated".

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

	* magick/magick.c (GetMagickInfoArray): Resolve Coverity CID 10212
	"Missing unlock".

	* magick/colormap.c (ReplaceImageColormap): Allocate new image
	colormap up front in order to avoid the possibility that we are
	left with an image with no colormap due to memory allocation
	failure. If there is a memory allocation failure, then the
	original colormap is preserved.  Resolves Coverity CID 10194
	"Dereference after null check".

	* magick/utility.c (MagickStripSpacesFromString): New private
	utility function to strip spaces from a string.

	* magick/color_lookup.c (GetColorInfoArray): Resolves Coverity CID
	10231 "Missing unlock"
	(ReadColorConfigureFile): Resolves Coverity CID 10261 "Use of
	untrusted scalar value"
	(GetColorInfo): Resolves Coverity CID 10077 "Overlapping buffer in
	memory copy".

2015-01-21  Glenn Randers-Pehrson  <glennrp@simple.dallas.tx.us>

	* coders/png.c (ReadOnePNGImage): Use png_error() instead of
	throwing an exception so cleanup in the setjmp block can happen,
	including unlocking the semaphore.  Resolves Coverity CID 10232.

	* coders/png.c (ReadOnePNGImage): Moved a logging statement into a
	block where "attribute" has been checked for NULL.  Resolves
	Coverity CIDs 10185 and 10187.

	* coders/png.c (ReadMNGImage): Fixed a cut-and-paste typo
	(change_delay should be change_timeout) reported by Coverity
	CID 10090.

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

	* magick/image.c (CloneImage): The definition is poor as to what a
	non-orphan clone should do.  However, the definition surely does
	not include crashing the software or supplanting the original
	image in an image list.  Clone image blob and previous/next
	pointers but do not supplant original image in list.  Resolves
	Coverity CID 10155.

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

	* coders/dpx.c (WriteRowSamples): Ensure that callback function is
	always defined. Resolves Coverity CID 10122.
	(ReadRowSamples): Ensure that callback function is always
	defined. Resolves Coverity CID 10125.

	* magick/random.c (InitializeMagickRandomKernel): Avoid possible
	double-close of file.  Resolves Coverity CID 10257.

	* coders/histogram.c (WriteHISTOGRAMImage): Avoid possible divide
	by zero exception.  Resolves Coverity CID 10107.

	* magick/error.c (MagickFatalError): Document that
	MagickFatalError() is not supposed to return (program must quit)
	and add GCC/Clang hints to that effect.

	* magick/bit_stream.c (BitAndMasks): Avoid possible access
	one-beyond end of BitAndMasks array.  It is not clear if there is
	a possible bug with 32-bit quantums.  If there is a bug, it has
	not been noticed via testing.  Resolves Coverity CID 10213.

	* magick/tempfile.c (AcquireTemporaryFileDescriptor): Avoid buffer
	overrun in the case of an astonishingly long environment variable
	string.  Resolves Coverity CID 10267.
	(AddTemporaryFileToList): Use strlcpy() rather than strlcpy().  In
	practice, should not make a difference.  Will quiet Coverity CID
	10321.

	* magick/command.c (GMCommandSingle): Don't use the address of a
	stack allocation to update argv[0]. Removed updating argv[0] until
	a better design can be found.  Resolves Coverity CID 10223.
	(GMCommandSingle): Plan B: Use static allocation from
	SetClientName() to both store the new command name and provide
	storage for argv[0].

	* magick/utility.c (SystemCommand): Fix possible overwrite of
	memory location due to uninitialized 'end' pointer.  Resolves
	Coverity CID 10251.

	* magick/blob.c (WriteBlobFile): Was not closing file in certain
	error conditions.  Resolves Coverity CID 10237.

	* coders/cineon.c (ReadCINEONImage): Don't trust file header so
	much.  Resolves Coverity CIDs 10079, 10310, 10325.

	* coders/art.c (ReadARTImage): Fix signed vs unsigned comparison
	caused by earlier changes.

2014-01-17 Fojtik Jaroslav  <JaFojtik@seznam.cz>

	* coders/wpg.c Do not execute wpg raster read in ping mode.

2014-01-15 Fojtik Jaroslav  <JaFojtik@seznam.cz>

	* coders/mat.c Properly deallocating zip structures.

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

	* coders/sfw.c (ReadSFWImage): Fix pixel cache access errors in
	'ping' mode.

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

	* coders/wmf.c (ReadWMFImage): Fix memory leak in 'ping' mode and
	some error paths.

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

	* coders/jbig.c (ReadJBIGImage): Fix memory leak in 'ping' mode.

	* magick/delegate.c (InvokeDelegate): Fix memory leak of argument
	list when invoking external program via MagickSpawnVP().

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

	* magick/resource.c (InitializeMagickResources): Base image width
	and height default limits on the range of a 32-bit signed integer,
	even for 64-bit builds.  These limits are still beyond what most
	computers in the world can handle.  Limits can be increased by the
	user.

	* coders/xwd.c (ReadXWDImage): Check image size limits
	immediately.

	* coders/xc.c (ReadXCImage): Check image size limits immediately.

	* coders/webp.c (ReadWEBPImage): Check image size limits
	immediately.

	* coders/viff.c (ReadVIFFImage): Check image size limits
	immediately.

	* coders/vicar.c (ReadVICARImage): Check image size limits
	immediately.

	* coders/txt.c (ReadTXTImage): Check image size limits
	immediately.

	* coders/ttf.c (ReadTTFImage): Check image size limits
	immediately.

	* coders/tim.c (ReadTIMImage): Check image size limits
	immediately.

	* coders/tiff.c (ReadTIFFImage): Check image size limits
	immediately.

	* coders/tga.c (ReadTGAImage): Check image size limits
	immediately.

	* coders/sgi.c (ReadSGIImage): Check image size limits
	immediately.

	* coders/sct.c (ReadSCTImage): Check image size limits
	immediately.

	* coders/rle.c (ReadRLEImage): Check image size limits
	immediately.

	* coders/rla.c (ReadRLAImage): Check image size limits
	immediately.

	* coders/psd.c (ReadPSDImage): Check image size limits
	immediately.

	* coders/pnm.c (ReadPNMImage): Check image size limits
	immediately.

	* coders/pix.c (ReadPIXImage): Check image size limits
	immediately.

	* coders/pict.c (ReadPICTImage): Check image size limits
	immediately.

	* coders/pdb.c (ReadPDBImage): Check image size limits
	immediately.

	* coders/pcx.c (ReadPCXImage): Check image size limits
	immediately.

	* coders/pcd.c (ReadPCDImage): Check image size limits
	immediately.

	* coders/otb.c (ReadOTBImage): Check image size limits
	immediately.

	* coders/null.c (ReadNULLImage): Check image size limits
	immediately.

	* coders/mvg.c (ReadMVGImage): Check image size limits
	immediately.

	* coders/mtv.c (ReadMTVImage): Check image size limits
	immediately.

	* coders/mpc.c (ReadMPCImage): Check image size limits
	immediately.

	* coders/miff.c (ReadMIFFImage): Check image size limits
	immediately.

	* coders/jpeg.c (ReadJPEGImage): Check image size limits
	immediately.

	* coders/jp2.c (ReadJP2Image): Check image size limits
	immediately.

	* coders/jbig.c (ReadJBIGImage): Check image size limits
	immediately.

	* coders/hdf.c (ReadHDFImage): Check image size limits
	immediately.

	* coders/gif.c (ReadGIFImage): Check image size limits
	immediately.

	* coders/fpx.c (ReadFPXImage): Check image size limits
	immediately.

	* coders/fax.c (ReadFAXImage): Check image size limits
	immediately.

	* coders/dpx.c (ReadDPXImage): Check image size limits
	immediately.

	* coders/dps.c (ReadDPSImage): Check image size limits
	immediately.

	* coders/dib.c (ReadDIBImage): Check image size limits
	immediately.

	* coders/dcm.c (ReadDCMImage): Check image size limits
	immediately.

	* coders/cut.c (ReadCUTImage): Check image size limits
	immediately.

	* coders/cineon.c (ReadCINEONImage): Check image size limits
	immediately.

	* coders/avs.c (ReadAVSImage): Check image size limits
	immediately.

	* coders/art.c (ReadARTImage): Check image size limits
	immediately.

	* coders/sun.c (ReadSUNImage): Check image size limits in advance
	of allocating memory for pixels.

	* coders/bmp.c (ReadBMPImage): Check image size limits in advance
	of allocating memory for pixels.

	* coders/sun.c (ReadSUNImage): There is no definition for Sun map
	type RMT_RAW so it can not be supported.  Update DirectClass
	pixels directly rather using SyncImage().  Problem was reported by
	Jodie Cunningham.

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

	* coders/pict.c (ReadPICTImage): Fix PICT reader crash when
	reading corrupted file.

	* coders/sun.c (ReadSUNImage): Sun reader was still not as robust
	as it should be.  Now it is.

2014-01-10 Fojtik Jaroslav  <JaFojtik@seznam.cz>

	* coders/wpg.c Fixed reading behind EOF issue.

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

	* coders/dpx.c (LSBPackedU32WordToOctets): Fix typo which adds
	severe corruption to encoded little-endian 32-bit packed output.
	The good news is that since the corruption is severe, it is easily
	visually detected.  The problem has corrupted all such
	(little-endian 10-bit) output since it was originally implemented
	on 2007-06-17 (changeset 11686, first released in GraphicsMagick
	1.1.8).  GraphicsMagick preserves the endianness of input DPX
	files by default, defaults to big-endian, and DPX files are
	commonly big-endian, so this problem may not have occured for many
	usages.  Problem was reported by Steve Dabner on the
	GraphicsMagick discussion mailing list.

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

	* magick/magick.c (MagickPanicSignalHandler): Print a message in
	the case of signals SIGXCPU and SIGXFSZ.

	* coders/bmp.c (ReadBMPImage): Don't hang in endless loop if EOF
	is encountered while checking for "BA" header.

	* coders/icon.c (ReadIconImage): Limit icon image allocation size.

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

	* coders/icon.c (ReadIconImage): Removed all of the
	previously-existing DIB reading code from icon.c and use new
	"ICODIB" reader to read DIB icons, or the PNG reader to read PNG
	icons.

	* coders/dib.c (ReadDIBImage): Added an "ICODIB" coder for
	internal use which reads a Windows BMP 3 DIB followed by a Windows
	ICO alpha mask.  This allows existing DIB code to be used to read
	ICO directory entries.

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

	* coders/icon.c: The Windows ICO reader is now more robust.  Still
	a work in progress since some files still can not be read or read
	incorrectly.

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

	* magick/resource.c (ListMagickResourceInfo): "kilo" for binary
	prefixes is supposed to be "Ki".

	* magick/utility.c (FormatSize): "kilo" for binary prefixes is
	supposed to be "Ki".

2015-01-01  Glenn Randers-Pehrson  <glennrp@simple.dallas.tx.us>

	* coders/png.c: Use WidthResource and HeightResource instead
	of fixed 1-million limit for rows and columns.

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

	* magick/utility.c (FormatSize): Add 'i' to value range
	identifiers since these are all in units of 2^10 rather than 1000.

	* magick/pixel_cache.c (CheckImagePixelLimits): Fix typo and
	produce an informative error message.

	* magick/resource.c: Added support for Image width and height
	pixels resource limits.

	* magick/resource.h (ResourceType): New resource enumerations
	WidthResource and HeightResource.

	* magick/enum_strings.c (StringToResourceType): Added support for
	parsing '-limit Width' and '-limit Height'.

	* magick/pixel_cache.c (CheckImagePixelLimits): New function to
	test image to see if it exceeds pixels limits.

	* coders/viff.c (ReadVIFFImage): Make the VIFF reader robust with
	detecting and reporting problems.

2014-12-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* Rotate Changelog for new year.  Update documentation copyrights
	for new year.


