[CPU] Fix heap corruption by XEXP header patch not resizing headers correctly
This should hopefully fix GTA IV's TU (for media ID 6AC07221 at least)
This commit is contained in:
parent
9a5a242bb2
commit
efcf61aa9f
|
@ -248,15 +248,7 @@ int XexModule::ApplyPatch(XexModule* module) {
|
||||||
|
|
||||||
// Patch base XEX header
|
// Patch base XEX header
|
||||||
uint32_t original_image_size = module->image_size();
|
uint32_t original_image_size = module->image_size();
|
||||||
uint32_t header_target_size = patch_header->delta_headers_target_offset +
|
uint32_t header_target_size = patch_header->size_of_target_headers;
|
||||||
patch_header->delta_headers_source_size;
|
|
||||||
|
|
||||||
if (!header_target_size) {
|
|
||||||
header_target_size =
|
|
||||||
patch_header->size_of_target_headers; // unsure which is more correct..
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t mem_size = module->xex_header_mem_.size();
|
|
||||||
|
|
||||||
// Increase xex header buffer length if needed
|
// Increase xex header buffer length if needed
|
||||||
if (header_target_size > module->xex_header_mem_.size()) {
|
if (header_target_size > module->xex_header_mem_.size()) {
|
||||||
|
|
Loading…
Reference in New Issue