Skip to content

Commit 29d07ae

Browse files
authored
Merge pull request #159 from microsoft/dataflow-stack-cleanup-3
Java: Update file that was forgotten in #157
2 parents 3237b2c + 403ad3c commit 29d07ae

File tree

3 files changed

+30
-8
lines changed

3 files changed

+30
-8
lines changed
Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,36 @@
11
import java
22
private import semmle.code.java.dataflow.DataFlow
33
private import semmle.code.java.dataflow.internal.DataFlowImplSpecific
4-
54
private import codeql.dataflowstack.DataFlowStack as DFS
65
private import DFS::DataFlowStackMake<Location, JavaDataFlow> as DataFlowStackFactory
76

8-
module DataFlowStackMake<DataFlowStackFactory::DataFlow::GlobalFlowSig Flow>{
9-
import DataFlowStackFactory::FlowStack<Flow>
7+
private module DataFlowStackInput<DataFlowStackFactory::DataFlow::ConfigSig Config> implements
8+
DFS::DataFlowStackSig<Location, JavaDataFlow, Config>
9+
{
10+
private module Flow = DataFlow::Global<Config>;
11+
12+
JavaDataFlow::Node getNode(Flow::PathNode n) { result = n.getNode() }
13+
14+
predicate isSource(Flow::PathNode n) { n.isSource() }
15+
16+
Flow::PathNode getASuccessor(Flow::PathNode n) { result = n.getASuccessor() }
17+
18+
JavaDataFlow::DataFlowCallable getARuntimeTarget(JavaDataFlow::DataFlowCall call) {
19+
result.asCallable() = call.asCall().getCallee()
20+
}
21+
22+
JavaDataFlow::Node getAnArgumentNode(JavaDataFlow::DataFlowCall call) {
23+
result = JavaDataFlow::exprNode(call.asCall().getAnArgument())
24+
}
25+
}
26+
27+
module DataFlowStackMake<DataFlowStackFactory::DataFlow::ConfigSig Config> {
28+
import DataFlowStackFactory::FlowStack<Config, DataFlowStackInput<Config>>
1029
}
1130

12-
module BiStackAnalysisMake<DataFlowStackFactory::DataFlow::GlobalFlowSig FlowA, DataFlowStackFactory::DataFlow::GlobalFlowSig FlowB>{
13-
import DataFlowStackFactory::BiStackAnalysis<FlowA, FlowB>
14-
}
31+
module BiStackAnalysisMake<
32+
DataFlowStackFactory::DataFlow::ConfigSig ConfigA,
33+
DataFlowStackFactory::DataFlow::ConfigSig ConfigB>
34+
{
35+
import DataFlowStackFactory::BiStackAnalysis<ConfigA, DataFlowStackInput<ConfigA>, ConfigB, DataFlowStackInput<ConfigB>>
36+
}

shared/dataflowstack/codeql/dataflowstack/DataFlowStack.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ module DataFlowStackMake<LocationSig Location, DF::InputSig<Location> Lang> {
236236
exists(Flow::PathNode source, Flow::PathNode sink |
237237
flowStack = TFlowStack(source, sink) and
238238
frame.getPathNode() = DataFlowStack::getASuccessor*(source) and
239-
DataFlowStack::getASuccessor(frame.getPathNode()) = sink
239+
DataFlowStack::getASuccessor*(frame.getPathNode()) = sink
240240
)
241241
}
242242

shared/dataflowstack/codeql/dataflowstack/TaintTrackingStack.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ module TaintTrackingStackMake<
242242
exists(Flow::PathNode source, Flow::PathNode sink |
243243
flowStack = TFlowStack(source, sink) and
244244
frame.getPathNode() = TaintTrackingStack::getASuccessor*(source) and
245-
TaintTrackingStack::getASuccessor(frame.getPathNode()) = sink
245+
TaintTrackingStack::getASuccessor*(frame.getPathNode()) = sink
246246
)
247247
}
248248

0 commit comments

Comments
 (0)