]> granicus.if.org Git - imagemagick/commitdiff
Eliminate possible buffer overflow
authorCristy <urban-warrior@imagemagick.org>
Wed, 21 Aug 2019 15:59:46 +0000 (11:59 -0400)
committerCristy <urban-warrior@imagemagick.org>
Wed, 21 Aug 2019 15:59:46 +0000 (11:59 -0400)
coders/png.c

index e61e09f29640df8bfad14246b2a4bd1c314a238a..e61b1713ccd523c0135db41f3f6b50a6bc638b8c 100644 (file)
@@ -11400,14 +11400,15 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
   (void) SetQuantumEndian(image,quantum_info,MSBEndian);
   num_passes=png_set_interlace_handling(ping);
 
-  if ((!mng_info->write_png8 && !mng_info->write_png24 &&
-       !mng_info->write_png48 && !mng_info->write_png64 &&
-       !mng_info->write_png32) &&
-       (mng_info->IsPalette ||
-       (image_info->type == BilevelType)) &&
-       image_matte == MagickFalse &&
-       ping_have_non_bw == MagickFalse)
-    {
+  if ((mng_info->write_png_colortype-1 == PNG_COLOR_TYPE_PALETTE) ||
+      ((!mng_info->write_png8 && !mng_info->write_png24 &&
+        !mng_info->write_png48 && !mng_info->write_png64 &&
+        !mng_info->write_png32) &&
+        (mng_info->IsPalette ||
+        (image_info->type == BilevelType)) &&
+        image_matte == MagickFalse &&
+        ping_have_non_bw == MagickFalse))
+     {
       /* Palette, Bilevel, or Opaque Monochrome */
       QuantumType
         quantum_type;