Use SSAInstructionKey for map lineNumbers.
This commit is contained in:
parent
9514d3633c
commit
73a9b8960f
|
@ -271,9 +271,9 @@ public class AnalysisUtil {
|
|||
* @param print
|
||||
* @return
|
||||
*/
|
||||
public static HashMap<SSAInstruction, Integer> getLineNumbers(HashMap<Integer,BasicBlockInContext<IExplodedBasicBlock>> sgNodes) {
|
||||
public static HashMap<SSAInstructionKey, Integer> getLineNumbers(HashMap<Integer,BasicBlockInContext<IExplodedBasicBlock>> sgNodes) {
|
||||
log.debug("** get source code line number for each instruction");
|
||||
HashMap<SSAInstruction, Integer> map = new HashMap<SSAInstruction, Integer>();
|
||||
HashMap<SSAInstructionKey, Integer> map = new HashMap<SSAInstructionKey, Integer>();
|
||||
for(BasicBlockInContext<IExplodedBasicBlock> bbic : sgNodes.values()) {
|
||||
SSAInstruction inst = bbic.getLastInstruction();
|
||||
if(inst == null) {
|
||||
|
@ -282,7 +282,7 @@ public class AnalysisUtil {
|
|||
// ConcreteJavaMethod method = (ConcreteJavaMethod) bbic.getMethod();
|
||||
IMethod method = bbic.getMethod();
|
||||
int lineNumber = method.getLineNumber(bbic.getLastInstructionIndex());
|
||||
map.put(inst, lineNumber);
|
||||
map.put(new SSAInstructionKey(inst), lineNumber);
|
||||
log.debug(lineNumber + ". " + inst);
|
||||
}
|
||||
return map;
|
||||
|
|
|
@ -269,7 +269,7 @@ public class SuperGraphUtil {
|
|||
//*/
|
||||
|
||||
//* <<< get source code line number for each instruction
|
||||
HashMap<SSAInstruction, Integer> lineNumbers = AnalysisUtil.getLineNumbers(sgNodes);
|
||||
HashMap<SSAInstructionKey, Integer> lineNumbers = AnalysisUtil.getLineNumbers(sgNodes);
|
||||
//*/
|
||||
|
||||
//* <<< get the corresponding instruction for each condition inside the callgraph
|
||||
|
@ -283,7 +283,7 @@ public class SuperGraphUtil {
|
|||
HashMap<Integer, Integer> conditionLineNumber = new HashMap<Integer, Integer>();
|
||||
for (SSAInstruction instCondition : conditionsList) {
|
||||
int nodeId = sgNodesInstId.get(new SSAInstructionKey(instCondition));
|
||||
int lineNumber = lineNumbers.get(instCondition);
|
||||
int lineNumber = lineNumbers.get(new SSAInstructionKey(instCondition));
|
||||
conditionLineNumber.put(nodeId, lineNumber);
|
||||
}
|
||||
|
||||
|
@ -364,7 +364,7 @@ public class SuperGraphUtil {
|
|||
if(isNotSanitized) {
|
||||
weaknessCount++;
|
||||
containsVulnerability = true;
|
||||
log.warn("SQL execute [" + lineNumbers.get(sink) + "] with bad source readLine [" + lineNumbers.get(source) + "] (" + entryClass + "." + entryMethod + ")");
|
||||
log.warn("SQL execute [" + lineNumbers.get(new SSAInstructionKey(sink)) + "] with bad source readLine [" + lineNumbers.get(new SSAInstructionKey(source)) + "] (" + entryClass + "." + entryMethod + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue