mirror of
https://github.com/N64Recomp/N64ModernRuntime.git
synced 2025-10-30 08:02:29 +00:00
Fix issue with regenerating patched functions with no base functions regenerated, add 1kB of padding between mods to mitigate OOB accesses in mods, update N64Recomp (#84)
This commit is contained in:
parent
3474514013
commit
7319630e2e
2 changed files with 12 additions and 8 deletions
|
|
@ -1 +1 @@
|
|||
Subproject commit b18e0ca2dd359d62dcc019771f0ccc4a1302bd03
|
||||
Subproject commit 198de1b5cf6e58415948588584750c51562d58dd
|
||||
|
|
@ -1320,6 +1320,7 @@ std::vector<recomp::mods::ModLoadErrorDetails> recomp::mods::ModContext::regener
|
|||
}
|
||||
|
||||
// Apply the regenlist.
|
||||
if (!regenlist.functions.empty()) {
|
||||
regenerated_code_handle = apply_regenlist(regenlist, decompressed_rom);
|
||||
if (!regenerated_code_handle || !regenerated_code_handle->good()) {
|
||||
regenerated_code_handle.reset();
|
||||
|
|
@ -1328,6 +1329,7 @@ std::vector<recomp::mods::ModLoadErrorDetails> recomp::mods::ModContext::regener
|
|||
});
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
if (!regenlist.patched_hooks.empty()) {
|
||||
// Create new hook definitions based on the actual addresses in the patch binary.
|
||||
|
|
@ -1484,6 +1486,8 @@ recomp::mods::CodeModLoadError recomp::mods::ModContext::init_mod_code(uint8_t*
|
|||
cur_section_addr += section.size + section.bss_size;
|
||||
// Align the next section's address to 16 bytes.
|
||||
cur_section_addr = (cur_section_addr + 15) & ~15;
|
||||
// Add some empty space between mods to act as a buffer for misbehaving mods that have out of bounds accesses.
|
||||
cur_section_addr += 0x400;
|
||||
}
|
||||
|
||||
// Iterate over each section again after loading them to perform R_MIPS_32 relocations.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue