Merge branch 'GP-4291_ghidra1_PR-5784_astrelsky_ElfParseDynamicHeader'

(Closes #5784)
This commit is contained in:
ghidra1
2024-02-01 17:54:46 -05:00
@@ -702,15 +702,17 @@ public class ElfHeader implements StructConverter {
}
ElfProgramHeader loadHeader = getProgramLoadHeaderContaining(vaddr);
if (loadHeader != null) {
long dynamicTableOffset = loadHeader.getOffset() +
(dynamicHeaders[0].getVirtualAddress() - loadHeader.getVirtualAddress());
dynamicTable = new ElfDynamicTable(reader, this, dynamicTableOffset,
dynamicHeaders[0].getVirtualAddress());
return;
if (loadHeader == null) {
// Assume p_offset can be used reliably if no corresponding PT_LOAD
loadHeader = dynamicHeaders[0];
}
long dynamicTableOffset = loadHeader.getOffset() +
(dynamicHeaders[0].getVirtualAddress() - loadHeader.getVirtualAddress());
dynamicTable = new ElfDynamicTable(reader, this, dynamicTableOffset,
dynamicHeaders[0].getVirtualAddress());
return;
}
else if (dynamicHeaders.length > 1) {
if (dynamicHeaders.length > 1) {
errorConsumer.accept("Multiple ELF Dynamic table program headers found");
}