File ImageMagick-CVE-2019-12975.patch of Package ImageMagick.30956
Index: ImageMagick-6.8.8-1/coders/dpx.c
===================================================================
--- ImageMagick-6.8.8-1.orig/coders/dpx.c 2019-07-18 15:18:00.077870207 +0200
+++ ImageMagick-6.8.8-1/coders/dpx.c 2019-07-18 15:42:07.673719136 +0200
@@ -1973,11 +1973,16 @@ static MagickBooleanType WriteDPXImage(c
pixels=GetQuantumPixels(quantum_info);
for (y=0; y < (ssize_t) image->rows; y++)
{
+ size_t
+ length;
+
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- (void) ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
quantum_type,pixels,&image->exception);
+ if (length == 0)
+ break;
count=WriteBlob(image,extent,pixels);
if (count != (ssize_t) extent)
break;
@@ -1987,6 +1992,8 @@ static MagickBooleanType WriteDPXImage(c
break;
}
quantum_info=DestroyQuantumInfo(quantum_info);
+ if (y < (ssize_t) image->rows)
+ ThrowWriterException(CorruptImageError,"UnableToWriteImageData");
(void) CloseBlob(image);
return(status);
}