]> granicus.if.org Git - imagemagick/commitdiff
coders/png.c: Fixed Issue 600
authorGlenn Randers-Pehrson <glennrp@gmail.com>
Sun, 23 Jul 2017 15:39:33 +0000 (11:39 -0400)
committerGlenn Randers-Pehrson <glennrp@gmail.com>
Sun, 23 Jul 2017 15:39:33 +0000 (11:39 -0400)
coders/png.c

index 7e715dc6a77b17c60e759f385e8bda9d4699cc42..83303215d13934b1ba44fa09ac83d759439c7762 100644 (file)
@@ -2089,6 +2089,9 @@ static Image *ReadOnePNGImage(MngInfo *mng_info,
   QuantumInfo
     *volatile quantum_info;
 
+  Quantum
+    *volatile quantum_scanline;
+
   ssize_t
     ping_rowbytes,
     y;
@@ -2203,7 +2206,7 @@ static Image *ReadOnePNGImage(MngInfo *mng_info,
   {
     (void) LogMagickEvent(CoderEvent,GetMagickModule(),
        "    Before reading:\n"
-       "      image->alpha_trait=%d"
+       "      image->alpha_trait=%d\n"
        "      image->rendering_intent=%d\n"
        "      image->colorspace=%d\n"
        "      image->gamma=%f",
@@ -2273,16 +2276,19 @@ static Image *ReadOnePNGImage(MngInfo *mng_info,
       */
       png_destroy_read_struct(&ping,&ping_info,&end_info);
 
-#ifdef IMPNG_SETJMP_NOT_THREAD_SAFE
-      UnlockSemaphoreInfo(ping_semaphore);
-#endif
-
       if (pixel_info != (MemoryInfo *) NULL)
         pixel_info=RelinquishVirtualMemory(pixel_info);
 
       if (quantum_info != (QuantumInfo *) NULL)
         quantum_info=DestroyQuantumInfo(quantum_info);
 
+      if (quantum_scanline != (Quantum *) NULL)
+        quantum_scanline=(Quantum *) RelinquishMagickMemory(quantum_scanline);
+
+#ifdef IMPNG_SETJMP_NOT_THREAD_SAFE
+      UnlockSemaphoreInfo(ping_semaphore);
+#endif
+
       if (logging != MagickFalse)
         (void) LogMagickEvent(CoderEvent,GetMagickModule(),
           "  exit ReadOnePNGImage() with error.");
@@ -3406,9 +3412,6 @@ static Image *ReadOnePNGImage(MngInfo *mng_info,
 
     for (pass=0; pass < num_passes; pass++)
     {
-      Quantum
-        *quantum_scanline;
-
       register Quantum
         *r;