Browse Source

Fix possible segfault when a DecodeHandler fails to decode an image properly

Bart van Strien 10 years ago
parent
commit
e3ff0a0d63
1 changed files with 4 additions and 1 deletions
  1. 4 1
      src/modules/image/magpie/ImageData.cpp

+ 4 - 1
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!");
 	}