File GraphicsMagick-CVE-2016-7101.patch of Package GraphicsMagick.6323
Index: GraphicsMagick-1.3.20/coders/sgi.c
===================================================================
--- GraphicsMagick-1.3.20.orig/coders/sgi.c 2013-03-10 00:19:31.000000000 +0100
+++ GraphicsMagick-1.3.20/coders/sgi.c 2016-10-11 12:07:09.616857589 +0200
@@ -284,6 +284,8 @@ static Image *ReadSGIImage(const ImageIn
bytes_per_pixel,
number_pixels;
+ size_t count;
+
/*
Open image file.
*/
@@ -317,12 +319,16 @@ static Image *ReadSGIImage(const ImageIn
(void) ReadBlob(image,(unsigned int) sizeof(iris_info.dummy1),
iris_info.dummy1);
- (void) ReadBlob(image,(unsigned int) sizeof(iris_info.image_name),
- iris_info.image_name);
+ count=ReadBlob(image,(unsigned int) sizeof(iris_info.image_name),
+ iris_info.image_name);
+ if (count != sizeof(iris_info.image_name))
+ ThrowReaderException(CorruptImageError,ImproperImageHeader,image);
iris_info.image_name[sizeof(iris_info.image_name)-1]=0;
iris_info.color_map=ReadBlobMSBLong(image);
- (void) ReadBlob(image,(unsigned int) sizeof(iris_info.dummy2),
- iris_info.dummy2);
+ count=ReadBlob(image,(unsigned int) sizeof(iris_info.dummy2),
+ iris_info.dummy2);
+ if (count != sizeof(iris_info.dummy2))
+ ThrowReaderException(CorruptImageError,ImproperImageHeader,image);
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" Header: Storage=%u, BPC=%u, Dimension=%u, XSize=%u, YSize=%u, ZSize=%u, PixMin=%u, PixMax=%u, image_name=\"%.79s\", color_map=%u",