]> granicus.if.org Git - imagemagick/commitdiff
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6462
authorCristy <urban-warrior@imagemagick.org>
Mon, 19 Feb 2018 20:32:29 +0000 (15:32 -0500)
committerCristy <urban-warrior@imagemagick.org>
Mon, 19 Feb 2018 20:32:29 +0000 (15:32 -0500)
coders/gif.c

index a067a717a66d19deb5b504b5bdca22ad79de3f28..453d9a263ac47864a86cae8ce1ff2fe0b33a6f42 100644 (file)
@@ -1363,6 +1363,15 @@ static Image *ReadGIFImage(const ImageInfo *image_info,ExceptionInfo *exception)
     if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
       if (image->scene >= (image_info->scene+image_info->number_scenes-1))
         break;
+    /*
+      Decode image.
+    */
+    if (image_info->ping != MagickFalse)
+      status=PingGIFImage(image,exception);
+    else
+      status=DecodeImage(image,opacity,exception);
+    if ((image_info->ping == MagickFalse) && (status == MagickFalse))
+      ThrowGIFException(CorruptImageError,"CorruptImage");
     status=SetImageExtent(image,image->columns,image->rows,exception);
     if (status == MagickFalse)
       {
@@ -1373,15 +1382,6 @@ static Image *ReadGIFImage(const ImageInfo *image_info,ExceptionInfo *exception)
         meta_image=DestroyImage(meta_image);
         return(DestroyImageList(image));
       }
-    /*
-      Decode image.
-    */
-    if (image_info->ping != MagickFalse)
-      status=PingGIFImage(image,exception);
-    else
-      status=DecodeImage(image,opacity,exception);
-    if ((image_info->ping == MagickFalse) && (status == MagickFalse))
-      ThrowGIFException(CorruptImageError,"CorruptImage");
     duration+=image->delay*image->iterations;
     if (image_info->number_scenes != 0)
       if (image->scene >= (image_info->scene+image_info->number_scenes-1))