diff --git a/Ghidra/Features/Decompiler/ghidra_scripts/WindowsResourceReference.java b/Ghidra/Features/Decompiler/ghidra_scripts/WindowsResourceReference.java index e54e418390..f57ab106d9 100644 --- a/Ghidra/Features/Decompiler/ghidra_scripts/WindowsResourceReference.java +++ b/Ghidra/Features/Decompiler/ghidra_scripts/WindowsResourceReference.java @@ -694,10 +694,10 @@ public class WindowsResourceReference extends GhidraScript { followToParam(constUse, defUseList, highFunction, def.getInput(0), doneSet); return; case PcodeOp.MULTIEQUAL: - followToParam(constUse, defUseList, highFunction, def.getInput(0), doneSet); - @SuppressWarnings("unchecked") - ArrayList splitUseList = (ArrayList) defUseList.clone(); - followToParam(constUse, splitUseList, highFunction, def.getInput(1), doneSet); + for (int i = 0; i < def.getNumInputs(); i++) { + ArrayList splitUseList = new ArrayList<>(defUseList); + followToParam(constUse, splitUseList, highFunction, def.getInput(i), doneSet); + } return; case PcodeOp.CAST: // Cast will expose more Pcode, and could be attached to the same address! @@ -707,7 +707,8 @@ public class WindowsResourceReference extends GhidraScript { followToParam(constUse, defUseList, highFunction, def.getInput(0), doneSet); return; case PcodeOp.INDIRECT: - if (def.getOutput().getAddress().equals(def.getInput(0).getAddress())) { + Varnode output = def.getOutput(); + if (output.getAddress().equals(def.getInput(0).getAddress())) { followToParam(constUse, defUseList, highFunction, def.getInput(0), doneSet); return; } diff --git a/Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/app/plugin/core/script/WindowsResourceReferenceScriptTest.java b/Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/app/plugin/core/script/WindowsResourceReferenceScriptTest.java index 5df3d11bf7..374b0eefa1 100644 --- a/Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/app/plugin/core/script/WindowsResourceReferenceScriptTest.java +++ b/Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/app/plugin/core/script/WindowsResourceReferenceScriptTest.java @@ -145,7 +145,7 @@ public class WindowsResourceReferenceScriptTest extends AbstractGhidraHeadedInte addr(0x01001f3b, pgm), addr(0x0100398f, pgm), addr(0x01003ade, pgm), addr(0x01003aec, pgm), addr(0x01003ad0, pgm), addr(0x010039c5, pgm), addr(0x01003d45, pgm), addr(0x0100385b, pgm), addr(0x01003d36, pgm), - addr(0x01003920, pgm), addr(0x0100390e, pgm) }; + addr(0x01003920, pgm), addr(0x0100390e, pgm), addr(0x01003932, pgm) }; return winmineTestAddrs; }