]> granicus.if.org Git - imagemagick/commitdiff
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6223
authorCristy <urban-warrior@imagemagick.org>
Sun, 11 Feb 2018 16:11:14 +0000 (11:11 -0500)
committerCristy <urban-warrior@imagemagick.org>
Sun, 11 Feb 2018 16:11:14 +0000 (11:11 -0500)
MagickCore/cache.c

index 1b030a0d3af8ded20bb0073be2f966b8bb14b7c0..9602a4a08fd9772b0889e47dbef97d657f0fd6df 100644 (file)
@@ -1580,9 +1580,6 @@ static Cache GetImagePixelCache(Image *image,const MagickBooleanType clone,
     destroy,
     status;
 
-  MagickSizeType
-    length;
-
   static MagickSizeType
     cache_timelimit = MagickResourceInfinity,
     cpu_throttle = MagickResourceInfinity,
@@ -1609,13 +1606,6 @@ static Cache GetImagePixelCache(Image *image,const MagickBooleanType clone,
 #endif
       ThrowFatalException(ResourceLimitFatalError,"TimeLimitExceeded");
     }
-  length=GetImageListLength(image);
-  if (AcquireMagickResource(ListLengthResource,length) == MagickFalse)
-    {
-      (void) ThrowMagickException(exception,GetMagickModule(),
-        ResourceLimitError,"ListLengthExceedsLimit","`%s'",image->filename);
-      return((Cache) NULL);
-    }
   LockSemaphoreInfo(image->semaphore);
   assert(image->cache != (Cache) NULL);
   cache_info=(CacheInfo *) image->cache;
@@ -3499,6 +3489,10 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
       (AcquireMagickResource(HeightResource,image->rows) == MagickFalse))
     ThrowBinaryException(ImageError,"WidthOrHeightExceedsLimit",
       image->filename);
+  length=GetImageListLength(image);
+  if (AcquireMagickResource(ListLengthResource,length) == MagickFalse)
+    ThrowBinaryException(ResourceLimitError,"ListLengthExceedsLimit",
+      image->filename);
   source_info=(*cache_info);
   source_info.file=(-1);
   (void) FormatLocaleString(cache_info->filename,MagickPathExtent,"%s[%.20g]",