From: Cristy Date: Mon, 19 Feb 2018 20:32:29 +0000 (-0500) Subject: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6462 X-Git-Tag: 7.0.7-24~46 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=94c5c167798b22b030d4f16d73841e8b84029ce2;p=imagemagick https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6462 --- diff --git a/coders/gif.c b/coders/gif.c index a067a717a..453d9a263 100644 --- a/coders/gif.c +++ b/coders/gif.c @@ -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))