]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/1752
authorCristy <urban-warrior@imagemagick.org>
Mon, 14 Oct 2019 23:31:12 +0000 (19:31 -0400)
committerCristy <urban-warrior@imagemagick.org>
Mon, 14 Oct 2019 23:31:12 +0000 (19:31 -0400)
coders/png.c

index 7cb098da965d0020c89810ed76d3f89184218d57..23cb0f69f07155c0b2809b4697d1d43e2cf749c4 100644 (file)
@@ -11390,11 +11390,13 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
         "    Allocating %.20g bytes of memory for pixels",(double) rowbytes);
     }
-  pixel_info=AcquireVirtualMemory(rowbytes+256,sizeof(*ping_pixels));
+  pixel_info=AcquireVirtualMemory(rowbytes,GetPixelChannels(image)*
+    sizeof(*ping_pixels));
   if (pixel_info == (MemoryInfo *) NULL)
     png_error(ping,"Allocation of memory for pixels failed");
   ping_pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info);
-  (void) memset(ping_pixels,0,(rowbytes+256)*sizeof(*ping_pixels));
+  (void) memset(ping_pixels,0,rowbytes*GetPixelChannels(image)*
+    sizeof(*ping_pixels));
   /*
     Initialize image scanlines.
   */