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);
 }
openSUSE Build Service is sponsored by