mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 19:00:17 +02:00
DiskCache: allow relocations within the same ELF image
We would check the FileID of mapped sections, but BSS is an anonymous mapping. Grab the ELF image extents when we parse the file, and add an additional check to the relocation filter to bail out additional relocs if we know that size.
This commit is contained in:
1 parent
86f363d202
commit
b5ac608fc5
3 files changed
+22
No files matched your search
@@ -825,6 +825,11 @@ namespace DiskCache {
|
||||
if (Target >= Region->BeginVA && Target < Region->EndVA) {
|
||||
continue;
|
||||
}
|
||||
// let it through if it's inside the same ELF image? (like bss)
|
||||
if (Region->FileInfo.MappedSize && Target >= Region->FileStartVA && Target < Region->FileStartVA + Region->FileInfo.MappedSize) {
|
||||
continue;
|
||||
}
|
||||
|
||||
auto TargetSection = CTX->SyscallHandler->LookupExecutableFileSection(Thread, Target);
|
||||
if (!TargetSection || TargetSection->FileInfo.FileId != Region->FileInfo.FileId) {
|
||||
// we don't know where it's pointing, so we don't know how to encode the offset, so we can't cache atm
|
||||
|
||||
Reference in new issue
Block a user