From e3ff0a0d63a4b628d9676e939e1666809c8c450a Mon Sep 17 00:00:00 2001 From: Bart van Strien Date: Tue, 23 Jun 2015 13:35:32 +0200 Subject: [PATCH] Fix possible segfault when a DecodeHandler fails to decode an image properly --- src/modules/image/magpie/ImageData.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/image/magpie/ImageData.cpp b/src/modules/image/magpie/ImageData.cpp index 3efec4ac4..7920c78a2 100644 --- a/src/modules/image/magpie/ImageData.cpp +++ b/src/modules/image/magpie/ImageData.cpp @@ -124,7 +124,10 @@ void ImageData::decode(love::filesystem::FileData *data) // The decoder *must* output a 32 bits-per-pixel image. if (decodedimage.size != decodedimage.width*decodedimage.height*sizeof(pixel)) { - delete[] decodedimage.data; + if (decodeHandler) + decodeHandler->free(decodedimage.data); + else + delete[] decodedimage.data; throw love::Exception("Could not convert image!"); }