Sophie

Sophie

distrib > Mageia > 5 > x86_64 > by-pkgid > 857b723175ea1d5f45c5b31f25037f76 > files > 43

imagemagick-6.8.9.9-4.2.mga5.src.rpm

From 6330ab1048b62ab34e957447d81e35e1dde60d2e Mon Sep 17 00:00:00 2001
From: cristy <cristy@aa41f4f7-0bf4-0310-aa73-e5a19afd5a74>
Date: Sun, 14 Dec 2014 17:06:28 +0000
Subject: Avoid a crash in png coder

Move some code earlier in order to avoid non initialised pointer.

git-svn-id: https://subversion.imagemagick.org/subversion/ImageMagick/branches/ImageMagick-6@17209 aa41f4f7-0bf4-0310-aa73-e5a19afd5a74
origin:  http://trac.imagemagick.org/changeset/17209

diff --git a/coders/png.c b/coders/png.c
index 263d52b..ed6d613 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -3102,6 +3102,16 @@ static Image *ReadOnePNGImage(MngInfo *mng_info,
 
   if (image->storage_class == DirectClass)
     {
+      QuantumInfo
+        *quantum_info;
+
+      quantum_info=AcquireQuantumInfo(image_info,image);
+
+      if (quantum_info == (QuantumInfo *) NULL)
+        png_error(ping,"Failed to allocate quantum_info");
+
+      (void) SetQuantumEndian(image,quantum_info,MSBEndian);
+
       for (pass=0; pass < num_passes; pass++)
       {
         /*
@@ -3133,16 +3143,6 @@ static Image *ReadOnePNGImage(MngInfo *mng_info,
 
           else
           {
-            QuantumInfo
-              *quantum_info;
-
-            quantum_info=AcquireQuantumInfo(image_info,image);
-
-            if (quantum_info == (QuantumInfo *) NULL)
-              png_error(ping,"Failed to allocate quantum_info");
-
-            (void) SetQuantumEndian(image,quantum_info,MSBEndian);
-
             if ((int) ping_color_type == PNG_COLOR_TYPE_GRAY)
               (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
                 GrayQuantum,ping_pixels+row_offset,exception);
@@ -3163,7 +3163,6 @@ static Image *ReadOnePNGImage(MngInfo *mng_info,
               (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
                 RGBQuantum,ping_pixels+row_offset,exception);
 
-            quantum_info=DestroyQuantumInfo(quantum_info);
           }
 
           if (found_transparent_pixel == MagickFalse)
@@ -3224,6 +3223,7 @@ static Image *ReadOnePNGImage(MngInfo *mng_info,
               break;
           }
       }
+      quantum_info=DestroyQuantumInfo(quantum_info);
     }
 
   else /* image->storage_class != DirectClass */
-- 
cgit v0.10.2