From 1d86eaf7452a822abd83116084187e1b2dbe5be8 Mon Sep 17 00:00:00 2001 From: dev747368 <48332326+dev747368@users.noreply.github.com> Date: Mon, 24 Nov 2025 18:31:27 +0000 Subject: [PATCH] GP-0 fix more external address leakage in DWARF import --- .../main/java/ghidra/app/util/bin/MemoryByteProvider.java | 4 ++++ .../java/ghidra/app/util/bin/format/dwarf/DWARFProgram.java | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/MemoryByteProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/MemoryByteProvider.java index 1f38a3109a..d361c5c422 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/MemoryByteProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/MemoryByteProvider.java @@ -159,6 +159,10 @@ public class MemoryByteProvider implements ByteProvider { this.isEmtpy = maxAddress == null; } + public Memory getMemory() { + return memory; + } + private Address getAddress(long index) throws IOException { if (index == 0) { return baseAddress; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFProgram.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFProgram.java index dc980409b4..cf118b007c 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFProgram.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFProgram.java @@ -573,7 +573,10 @@ public class DWARFProgram implements Closeable { } ByteProvider bp = br.getByteProvider(); if (bp instanceof MemoryByteProvider mbp && !mbp.isEmpty()) { - if (program.getRelocationTable().getRelocations(mbp.getAddressSet()).hasNext()) { + Program providerProgram = mbp.getMemory().getProgram(); + if (providerProgram.getRelocationTable() + .getRelocations(mbp.getAddressSet()) + .hasNext()) { return true; } }