mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 18:29:37 +02:00
GP-4584 Corrected FID and ConstantPropogator errors (Closes #6453)
This commit is contained in:
parent
c4ea004218
commit
b8b0bee4a4
2 changed files with 8 additions and 9 deletions
|
@ -1744,7 +1744,9 @@ public class SymbolicPropogator {
|
||||||
con.refAddr = con.callAddr;
|
con.refAddr = con.callAddr;
|
||||||
con.inputlist = inputs;
|
con.inputlist = inputs;
|
||||||
con.output = new ArrayList<Varnode>();
|
con.output = new ArrayList<Varnode>();
|
||||||
|
if (out != null) {
|
||||||
con.output.add(out);
|
con.output.add(out);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
return payload.getPcode(prog, con);
|
return payload.getPcode(prog, con);
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,8 +30,7 @@ import ghidra.framework.model.DomainFile;
|
||||||
import ghidra.program.model.address.*;
|
import ghidra.program.model.address.*;
|
||||||
import ghidra.program.model.lang.*;
|
import ghidra.program.model.lang.*;
|
||||||
import ghidra.program.model.listing.*;
|
import ghidra.program.model.listing.*;
|
||||||
import ghidra.program.model.mem.MemoryAccessException;
|
import ghidra.program.model.mem.*;
|
||||||
import ghidra.program.model.mem.MemoryBlock;
|
|
||||||
import ghidra.program.model.symbol.*;
|
import ghidra.program.model.symbol.*;
|
||||||
import ghidra.util.Msg;
|
import ghidra.util.Msg;
|
||||||
import ghidra.util.exception.CancelledException;
|
import ghidra.util.exception.CancelledException;
|
||||||
|
@ -619,15 +618,13 @@ class FidServiceLibraryIngest {
|
||||||
* @return whether the function is external
|
* @return whether the function is external
|
||||||
*/
|
*/
|
||||||
private static boolean functionIsExternal(Function function) {
|
private static boolean functionIsExternal(Function function) {
|
||||||
if (function.isExternal()) {
|
Memory mem = function.getProgram().getMemory();
|
||||||
return true;
|
|
||||||
}
|
|
||||||
Address entryPoint = function.getEntryPoint();
|
Address entryPoint = function.getEntryPoint();
|
||||||
MemoryBlock block = function.getProgram().getMemory().getBlock(entryPoint);
|
if (function.isExternal() || !mem.contains(entryPoint)) {
|
||||||
if (!block.isInitialized()) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
MemoryBlock block = function.getProgram().getMemory().getBlock(entryPoint);
|
||||||
|
return block == null || !block.isInitialized() || block.isExternalBlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void exclude(DomainFile domainFile, Function function,
|
private void exclude(DomainFile domainFile, Function function,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue