]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/1042
authorCristy <urban-warrior@imagemagick.org>
Sat, 24 Mar 2018 16:49:26 +0000 (12:49 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sat, 24 Mar 2018 16:49:26 +0000 (12:49 -0400)
coders/art.c

index 7565680efcfb46874af8513348ae853f80b1f7d3..a162e883526a4b6103c09786e387f9f0fb07b558 100644 (file)
@@ -168,10 +168,7 @@ static Image *ReadARTImage(const ImageInfo *image_info,ExceptionInfo *exception)
     pixels=(const unsigned char *) ReadBlobStream(image,length,
       GetQuantumPixels(quantum_info),&count);
     if (count != (ssize_t) length)
-      {
-        quantum_info=DestroyQuantumInfo(quantum_info);
-        ThrowReaderException(CorruptImageError,"UnableToReadImageData");
-      }
+      break;
     (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
       GrayQuantum,pixels,exception);
     pixels=(const unsigned char *) ReadBlobStream(image,(size_t) (-(ssize_t)
@@ -183,6 +180,8 @@ static Image *ReadARTImage(const ImageInfo *image_info,ExceptionInfo *exception)
   }
   SetQuantumImageType(image,GrayQuantum);
   quantum_info=DestroyQuantumInfo(quantum_info);
+  if (y < (ssize_t) image->rows)
+    ThrowReaderException(CorruptImageError,"UnableToReadImageData");
   if (EOFBlob(image) != MagickFalse)
     ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
       image->filename);