Forráskód Böngészése

Merge pull request #91745 from timothyqiu/destruct

Fix memory leak when ASTC compression fails
Rémi Verschelde 1 éve
szülő
commit
6766404afa
1 módosított fájl, 4 hozzáadás és 1 törlés
  1. 4 1
      modules/astcenc/image_compress_astcenc.cpp

+ 4 - 1
modules/astcenc/image_compress_astcenc.cpp

@@ -132,7 +132,10 @@ void _compress_astc(Image *r_img, Image::ASTCFormat p_format) {
 		int dst_mip_w, dst_mip_h;
 		int dst_ofs = Image::get_image_mipmap_offset_and_dimensions(width, height, target_format, i, dst_mip_w, dst_mip_h);
 		// Ensure that mip offset is a multiple of 8 (etcpak expects uint64_t pointer).
-		ERR_FAIL_COND(dst_ofs % 8 != 0);
+		if (unlikely(dst_ofs % 8 != 0)) {
+			astcenc_context_free(context);
+			ERR_FAIL_MSG("astcenc: Mip offset is not a multiple of 8.");
+		}
 		uint8_t *dest_mip_write = (uint8_t *)&dest_write[dst_ofs];
 
 		// Compress image.