File GraphicsMagick-CVE-2016-10065.patch of Package GraphicsMagick.6323
Index: GraphicsMagick-1.3.21/coders/viff.c
===================================================================
--- GraphicsMagick-1.3.21.orig/coders/viff.c 2017-01-24 13:34:24.942358840 +0100
+++ GraphicsMagick-1.3.21/coders/viff.c 2017-01-24 13:35:56.715911217 +0100
@@ -297,6 +297,8 @@ static Image *ReadVIFFImage(const ImageI
unsigned long
bytes_per_pixel,
lsb_first,
+ blob_size,
+ alloc_size,
max_packets,
number_pixels;
@@ -558,6 +560,10 @@ static Image *ReadVIFFImage(const ImageI
max_packets=MagickArraySize(((image->columns+7) >> 3),image->rows);
else
max_packets=MagickArraySize(number_pixels,viff_info.number_data_bands);
+ alloc_size=MagickArraySize(bytes_per_pixel,max_packets);
+ blob_size=GetBlobSize(image);
+ if ((blob_size != 0) && (alloc_size > blob_size))
+ ThrowReaderException(CorruptImageError,InsufficientImageDataInFile,image);
viff_pixels=MagickAllocateArray(unsigned char *,
MagickArraySize(bytes_per_pixel,
Max(number_pixels, max_packets)),