diff options
Diffstat (limited to 'image')
-rw-r--r-- | image/png.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/image/png.cpp b/image/png.cpp index 1072d41a18..307334a64b 100644 --- a/image/png.cpp +++ b/image/png.cpp @@ -283,11 +283,19 @@ bool writePNG(Common::WriteStream &out, const Graphics::Surface &input) { png_structp pngPtr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (!pngPtr) { + if (tmp) { + tmp->free(); + delete tmp; + } return false; } png_infop infoPtr = png_create_info_struct(pngPtr); if (!infoPtr) { png_destroy_write_struct(&pngPtr, NULL); + if (tmp) { + tmp->free(); + delete tmp; + } return false; } |