]> granicus.if.org Git - imagemagick/commitdiff
Added check to prevent image being 0x0 (reported in #489).
authorDirk Lemstra <dirk@git.imagemagick.org>
Mon, 15 May 2017 19:10:09 +0000 (21:10 +0200)
committerDirk Lemstra <dirk@git.imagemagick.org>
Mon, 15 May 2017 19:11:15 +0000 (21:11 +0200)
coders/dds.c

index eb9641d0590107800ed327df37d1c141c05223fb..f1b1d8c71514f460be946871a1d16820986d0c55 100644 (file)
@@ -1677,16 +1677,15 @@ static Image *ReadDDSImage(const ImageInfo *image_info,ExceptionInfo *exception)
   /*
     Initialize image structure.
   */
-  if (ReadDDSInfo(image, &dds_info) != MagickTrue) {
+  if (ReadDDSInfo(image, &dds_info) != MagickTrue)
     ThrowReaderException(CorruptImageError,"ImproperImageHeader");
-  }
-  
+
   if (dds_info.ddscaps2 & DDSCAPS2_CUBEMAP)
     cubemap = MagickTrue;
-  
+
   if (dds_info.ddscaps2 & DDSCAPS2_VOLUME && dds_info.depth > 0)
     volume = MagickTrue;
-  
+
   (void) SeekBlob(image, 128, SEEK_SET);
 
   /*
@@ -1775,7 +1774,10 @@ static Image *ReadDDSImage(const ImageInfo *image_info,ExceptionInfo *exception)
   
   if (volume)
     num_images = dds_info.depth;
-  
+
+  if (num_images < 1)
+    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+
   for (n = 0; n < num_images; n++)
   {
     if (n != 0)