From bc40f20c0cc50ecf123768c2f470162d1518ef34 Mon Sep 17 00:00:00 2001 From: ghidra1 Date: Mon, 10 Jul 2023 11:36:32 -0400 Subject: [PATCH] GP-3302 corrected EXTERNAL thunk function creation which resulted in duplciate symbol --- .../app/cmd/function/CreateThunkFunctionCmd.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/function/CreateThunkFunctionCmd.java b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/function/CreateThunkFunctionCmd.java index 79d704577d..9434e5acef 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/function/CreateThunkFunctionCmd.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/function/CreateThunkFunctionCmd.java @@ -16,10 +16,7 @@ package ghidra.app.cmd.function; import java.math.BigInteger; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import ghidra.app.util.PseudoDisassembler; @@ -27,11 +24,7 @@ import ghidra.framework.cmd.BackgroundCommand; import ghidra.framework.model.DomainObject; import ghidra.program.database.function.OverlappingFunctionException; import ghidra.program.model.address.*; -import ghidra.program.model.block.BasicBlockModel; -import ghidra.program.model.block.CodeBlock; -import ghidra.program.model.block.CodeBlockReference; -import ghidra.program.model.block.CodeBlockReferenceIterator; -import ghidra.program.model.block.SimpleBlockModel; +import ghidra.program.model.block.*; import ghidra.program.model.data.DataType; import ghidra.program.model.lang.Register; import ghidra.program.model.lang.RegisterValue; @@ -695,6 +688,7 @@ public class CreateThunkFunctionCmd extends BackgroundCommand { ExternalManager extMgr = program.getExternalManager(); ExternalLocation extLoc = extMgr.addExtFunction(Library.UNKNOWN, s.getName(), null, s.getSource()); + s.delete(); // remove original symbol from EXTERNAL block return extLoc.getExternalSpaceAddress(); } catch (DuplicateNameException | InvalidInputException e) {