From: Cristy Date: Tue, 10 Apr 2018 00:51:00 +0000 (-0400) Subject: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7500 X-Git-Tag: 7.0.7-29~148 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1f859c0b8f3ad1c9c4a530353e75856c34e08d98;p=imagemagick https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7500 --- diff --git a/coders/jp2.c b/coders/jp2.c index 96bdc8a6d..320ecbed3 100644 --- a/coders/jp2.c +++ b/coders/jp2.c @@ -63,6 +63,7 @@ #include "MagickCore/profile.h" #include "MagickCore/property.h" #include "MagickCore/quantum-private.h" +#include "MagickCore/resource_.h" #include "MagickCore/semaphore.h" #include "MagickCore/static.h" #include "MagickCore/statistic.h" @@ -363,7 +364,15 @@ static Image *ReadJP2Image(const ImageInfo *image_info,ExceptionInfo *exception) ThrowReaderException(DelegateError,"UnableToDecodeImageFile"); } } - if ((image_info->number_scenes != 0) && (image_info->scene != 0)) + if ((AcquireMagickResource(WidthResource,(size_t) jp2_image->comps[0].w) == MagickFalse) || + (AcquireMagickResource(HeightResource,(size_t) jp2_image->comps[0].h) == MagickFalse)) + { + opj_stream_destroy(jp2_stream); + opj_destroy_codec(jp2_codec); + opj_image_destroy(jp2_image); + ThrowReaderException(DelegateError,"UnableToDecodeImageFile"); + } + if ((image_info->number_scenes != 0) && (image_info->scene != 0)) jp2_status=opj_get_decoded_tile(jp2_codec,jp2_stream,jp2_image, (unsigned int) image_info->scene-1); else