File ImageMagick-CVE-2014-9815.patch of Package ImageMagick.30956
Index: ImageMagick-6.8.9-8/coders/wpg.c
===================================================================
--- ImageMagick-6.8.9-8.orig/coders/wpg.c 2016-06-20 12:08:31.477594138 +0200
+++ ImageMagick-6.8.9-8/coders/wpg.c 2016-06-20 12:14:03.494981135 +0200
@@ -1026,6 +1026,8 @@ static Image *ReadWPGImage(const ImageIn
case 0x0B: /* bitmap type 1 */
BitmapHeader1.Width=ReadBlobLSBShort(image);
BitmapHeader1.Heigth=ReadBlobLSBShort(image);
+ if ((BitmapHeader1.Width == 0) || (BitmapHeader1.Heigth == 0))
+ ThrowReaderException(CorruptImageError,"ImproperImageHeader");
BitmapHeader1.Depth=ReadBlobLSBShort(image);
BitmapHeader1.HorzRes=ReadBlobLSBShort(image);
BitmapHeader1.VertRes=ReadBlobLSBShort(image);
@@ -1076,6 +1078,8 @@ static Image *ReadWPGImage(const ImageIn
BitmapHeader2.UpRightY=ReadBlobLSBShort(image);
BitmapHeader2.Width=ReadBlobLSBShort(image);
BitmapHeader2.Heigth=ReadBlobLSBShort(image);
+ if ((BitmapHeader2.Width == 0) || (BitmapHeader2.Heigth == 0))
+ ThrowReaderException(CorruptImageError,"ImproperImageHeader");
BitmapHeader2.Depth=ReadBlobLSBShort(image);
BitmapHeader2.HorzRes=ReadBlobLSBShort(image);
BitmapHeader2.VertRes=ReadBlobLSBShort(image);
@@ -1262,6 +1266,8 @@ static Image *ReadWPGImage(const ImageIn
case 0x0E:
Bitmap2Header1.Width=ReadBlobLSBShort(image);
Bitmap2Header1.Heigth=ReadBlobLSBShort(image);
+ if ((Bitmap2Header1.Width == 0) || (Bitmap2Header1.Heigth == 0))
+ ThrowReaderException(CorruptImageError,"ImproperImageHeader");
Bitmap2Header1.Depth=ReadBlobByte(image);
Bitmap2Header1.Compression=ReadBlobByte(image);