From afc647a28fa9260250c9358246553dfee5740cec Mon Sep 17 00:00:00 2001 From: astrelsky Date: Sun, 2 Aug 2020 15:21:20 -0400 Subject: [PATCH] Prevent silent AddressOutOfBoundsException in MipsAddressAnalyzer --- .../app/plugin/core/analysis/MipsAddressAnalyzer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsAddressAnalyzer.java b/Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsAddressAnalyzer.java index e240ca3429..49063c5678 100644 --- a/Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsAddressAnalyzer.java +++ b/Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsAddressAnalyzer.java @@ -349,7 +349,13 @@ public class MipsAddressAnalyzer extends ConstantPropagationAnalyzer { BigInteger val = context.getValue(reg, false); if (val != null) { long lval = val.longValue(); - Address refAddr = instr.getMinAddress().getNewAddress(lval); + Address refAddr = null; + try { + refAddr = instr.getMinAddress().getNewAddress(lval); + } catch (AddressOutOfBoundsException e) { + // invalid reference + return; + } if ((lval > 4096 || lval < 0) && lval != 0xffff && program.getMemory().contains(refAddr)) {