]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/imagpng.cpp
Make code reading BMP files more robust.
[wxWidgets.git] / src / common / imagpng.cpp
index 578d0baf6dd37b01c5f4ddaaa2e4515fe69581a2..81c411619bc63132a9e06635cee8096b5dd4ba7b 100644 (file)
@@ -116,11 +116,9 @@ IMPLEMENT_DYNAMIC_CLASS(wxPNGHandler,wxImageHandler)
 //     First, let me describe what's the problem: libpng uses jmp_buf in
 //     its png_struct structure. Unfortunately, this structure is
 //     compiler-specific and may vary in size, so if you use libpng compiled
-//     as DLL with another compiler than the main executable, it may not work
-//     (this is for example the case with wxMGL port and SciTech MGL library
-//     that provides custom runtime-loadable libpng implementation with jmpbuf
-//     disabled altogether). Luckily, it is still possible to use setjmp() &
-//     longjmp() as long as the structure is not part of png_struct.
+//     as DLL with another compiler than the main executable, it may not work.
+//     Luckily, it is still possible to use setjmp() & longjmp() as long as the
+//     structure is not part of png_struct.
 //
 //     Sadly, there's no clean way to attach user-defined data to png_struct.
 //     There is only one customizable place, png_struct.io_ptr, which is meant
@@ -569,7 +567,7 @@ wxPNGHandler::LoadFile(wxImage *image,
 
     for (i = 0; i < height; i++)
     {
-        if ((lines[i] = (unsigned char *)malloc( (size_t)(width * (sizeof(unsigned char) * 4)))) == NULL)
+        if ((lines[i] = (unsigned char *)malloc( (size_t)(width * 4))) == NULL)
             goto error;
     }
 
@@ -795,15 +793,13 @@ bool wxPNGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbos
 #endif
     ;
 
-    png_color_8 mask;
+    png_color_8 mask = { 0, 0, 0, 0, 0 };
 
     if (bHasMask)
     {
         mask.red   = image->GetMaskRed();
         mask.green = image->GetMaskGreen();
         mask.blue  = image->GetMaskBlue();
-        mask.alpha = 0;
-        mask.gray  = 0;
     }
 
     PaletteMap palette;