From 73a9b8960f0b00d6b6e9ef61d96a5e75d503a393 Mon Sep 17 00:00:00 2001 From: "Achim D. Brucker" Date: Sun, 18 Sep 2016 02:06:08 +0100 Subject: [PATCH] Use SSAInstructionKey for map lineNumbers. --- .../java/eu/aniketos/dasca/dataflow/util/AnalysisUtil.java | 6 +++--- .../eu/aniketos/dasca/dataflow/util/SuperGraphUtil.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/eu.aniketos.dasca.dataflow/src/main/java/eu/aniketos/dasca/dataflow/util/AnalysisUtil.java b/src/eu.aniketos.dasca.dataflow/src/main/java/eu/aniketos/dasca/dataflow/util/AnalysisUtil.java index 97a84eb..bc80221 100644 --- a/src/eu.aniketos.dasca.dataflow/src/main/java/eu/aniketos/dasca/dataflow/util/AnalysisUtil.java +++ b/src/eu.aniketos.dasca.dataflow/src/main/java/eu/aniketos/dasca/dataflow/util/AnalysisUtil.java @@ -271,9 +271,9 @@ public class AnalysisUtil { * @param print * @return */ - public static HashMap getLineNumbers(HashMap> sgNodes) { + public static HashMap getLineNumbers(HashMap> sgNodes) { log.debug("** get source code line number for each instruction"); - HashMap map = new HashMap(); + HashMap map = new HashMap(); for(BasicBlockInContext 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; diff --git a/src/eu.aniketos.dasca.dataflow/src/main/java/eu/aniketos/dasca/dataflow/util/SuperGraphUtil.java b/src/eu.aniketos.dasca.dataflow/src/main/java/eu/aniketos/dasca/dataflow/util/SuperGraphUtil.java index 5905c12..43ea998 100644 --- a/src/eu.aniketos.dasca.dataflow/src/main/java/eu/aniketos/dasca/dataflow/util/SuperGraphUtil.java +++ b/src/eu.aniketos.dasca.dataflow/src/main/java/eu/aniketos/dasca/dataflow/util/SuperGraphUtil.java @@ -269,7 +269,7 @@ public class SuperGraphUtil { //*/ //* <<< get source code line number for each instruction - HashMap lineNumbers = AnalysisUtil.getLineNumbers(sgNodes); + HashMap lineNumbers = AnalysisUtil.getLineNumbers(sgNodes); //*/ //* <<< get the corresponding instruction for each condition inside the callgraph @@ -283,7 +283,7 @@ public class SuperGraphUtil { HashMap conditionLineNumber = new HashMap(); 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 + ")"); } } }