]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/903
authorCristy <urban-warrior@imagemagick.org>
Tue, 19 Dec 2017 17:44:12 +0000 (12:44 -0500)
committerCristy <urban-warrior@imagemagick.org>
Tue, 19 Dec 2017 17:44:12 +0000 (12:44 -0500)
MagickCore/cache.c
coders/png.c

index 3791424d692af0138e0d984227c1ba9dae43919c..90f7ad2479fac7ee137d275b131398b2845c62bc 100644 (file)
@@ -1632,7 +1632,9 @@ static Cache GetImagePixelCache(Image *image,const MagickBooleanType clone,
           clone_image.cache=ClonePixelCache(cache_info);
           clone_info=(CacheInfo *) clone_image.cache;
           status=OpenPixelCache(&clone_image,IOMode,exception);
-          if (status != MagickFalse)
+          if (status == MagickFalse)
+            clone_info=(CacheInfo *) DestroyPixelCache(clone_info);
+          else
             {
               if (clone != MagickFalse)
                 status=ClonePixelCacheRepository(clone_info,cache_info,
@@ -1640,7 +1642,7 @@ static Cache GetImagePixelCache(Image *image,const MagickBooleanType clone,
               if (status != MagickFalse)
                 {
                   destroy=MagickTrue;
-                  image->cache=clone_image.cache;
+                  image->cache=clone_info;
                 }
             }
           RelinquishSemaphoreInfo(&clone_image.semaphore);
index de31f46e88e5f3259a58ccf2b294550539a88319..caef8e017a0e8d6973306c97a22623bee87007b8 100644 (file)
@@ -11302,7 +11302,6 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
   if (pixel_info == (MemoryInfo *) NULL)
     png_error(ping,"Allocation of memory for pixels failed");
   ping_pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info);
-
   /*
     Initialize image scanlines.
   */