Skip to content

Commit 4bf4363

Browse files
committed
Refactor {Data,TaintTracking}FlowStack
1 parent b179734 commit 4bf4363

File tree

6 files changed

+32
-942
lines changed

6 files changed

+32
-942
lines changed

csharp/ql/lib/semmle/code/csharp/dataflow/DataFlowStack.qll

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import csharp
22
private import codeql.dataflow.DataFlow
33
private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific
4-
private import codeql.dataflowstack.DataFlowStack as DFS
4+
private import codeql.dataflowstack.FlowStack as FlowStack
55

6-
module LanguageDataFlowStack = DFS::LanguageDataFlow<Location, CsharpDataFlow>;
6+
module LanguageFlowStack = FlowStack::LanguageDataFlow<Location, CsharpDataFlow>;
77

88
private module FlowStackInput<DataFlow::ConfigSig Config>
9-
implements LanguageDataFlowStack::DataFlowGroup<Config>::DataFlowStackSig<DataFlow::Global<Config>>
9+
implements LanguageFlowStack::DataFlowConfigContext<Config>::FlowInstance
1010
{
1111
private module Flow = DataFlow::Global<Config>;
12+
class PathNode = Flow::PathNode;
1213

1314
CsharpDataFlow::Node getNode(Flow::PathNode n) { result = n.getNode() }
1415

@@ -26,12 +27,12 @@ private module FlowStackInput<DataFlow::ConfigSig Config>
2627
}
2728

2829
module DataFlowStackMake<DataFlow::ConfigSig Config> {
29-
import LanguageDataFlowStack::FlowStack<DataFlow::Global<Config>, Config, FlowStackInput<Config>>
30+
import LanguageFlowStack::FlowStack<Config, FlowStackInput<Config>>
3031
}
3132

3233
module BiStackAnalysisMake<
3334
DataFlow::ConfigSig ConfigA,
3435
DataFlow::ConfigSig ConfigB
3536
>{
36-
import LanguageDataFlowStack::BiStackAnalysis<ConfigA, DataFlow::Global<ConfigA>, FlowStackInput<ConfigA>, ConfigB, DataFlow::Global<ConfigB>, FlowStackInput<ConfigB>>
37+
import LanguageFlowStack::BiStackAnalysis<ConfigA, FlowStackInput<ConfigA>, ConfigB, FlowStackInput<ConfigB>>
3738
}

csharp/ql/lib/semmle/code/csharp/dataflow/TaintTrackingStack.qll

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ import csharp
22
private import codeql.dataflow.DataFlow
33
private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific
44
private import semmle.code.csharp.dataflow.internal.TaintTrackingImplSpecific
5-
private import codeql.dataflowstack.TaintTrackingStack as TTS
5+
private import codeql.dataflowstack.FlowStack as FlowStack
66

7-
module LanguageTaintTrackingStack = TTS::LanguageTaintTracking<Location, CsharpDataFlow, CsharpTaintTracking>;
7+
module LanguageFlowStack = FlowStack::LanguageDataFlow<Location, CsharpDataFlow>;
88

9-
private module TaintTrackingStackInput<DataFlow::ConfigSig Config>
10-
implements LanguageTaintTrackingStack::DataFlowGroup<Config>::TaintTrackingStackSig<TaintTracking::Global<Config>>
9+
private module FlowStackInput<DataFlow::ConfigSig Config>
10+
implements LanguageFlowStack::DataFlowConfigContext<Config>::FlowInstance
1111
{
1212
private module Flow = TaintTracking::Global<Config>;
13+
class PathNode = Flow::PathNode;
1314

1415
CsharpDataFlow::Node getNode(Flow::PathNode n) { result = n.getNode() }
1516

@@ -27,12 +28,12 @@ private module TaintTrackingStackInput<DataFlow::ConfigSig Config>
2728
}
2829

2930
module DataFlowStackMake<DataFlow::ConfigSig Config> {
30-
import LanguageTaintTrackingStack::FlowStack<TaintTracking::Global<Config>, Config, TaintTrackingStackInput<Config>>
31+
import LanguageFlowStack::FlowStack<Config, FlowStackInput<Config>>
3132
}
3233

3334
module BiStackAnalysisMake<
3435
DataFlow::ConfigSig ConfigA,
3536
DataFlow::ConfigSig ConfigB
3637
>{
37-
import LanguageTaintTrackingStack::BiStackAnalysis<ConfigA, TaintTracking::Global<ConfigA>, TaintTrackingStackInput<ConfigA>, ConfigB, TaintTracking::Global<ConfigB>, TaintTrackingStackInput<ConfigB>>
38+
import LanguageFlowStack::BiStackAnalysis<ConfigA, FlowStackInput<ConfigA>, ConfigB, FlowStackInput<ConfigB>>
3839
}

java/ql/lib/semmle/code/java/dataflow/DataFlowStack.qll

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,21 @@ module;
44
import java
55
private import semmle.code.java.dataflow.DataFlow
66
private import semmle.code.java.dataflow.internal.DataFlowImplSpecific
7-
private import codeql.dataflowstack.DataFlowStack as DFS
7+
private import codeql.dataflowstack.FlowStack as FlowStack
88

9-
module LanguageDataFlowStack = DFS::LanguageDataFlow<Location, JavaDataFlow>;
9+
module LanguageFlowStack = FlowStack::LanguageDataFlow<Location, JavaDataFlow>;
1010

1111
private module FlowStackInput<DataFlow::ConfigSig Config>
12-
implements LanguageDataFlowStack::DataFlowGroup<Config>::DataFlowStackSig<DataFlow::Global<Config>>
12+
implements LanguageFlowStack::DataFlowConfigContext<Config>::FlowInstance
1313
{
1414
private module Flow = DataFlow::Global<Config>;
15+
class PathNode = Flow::PathNode;
1516

16-
JavaDataFlow::Node getNode(Flow::PathNode n) { result = n.getNode() }
17+
JavaDataFlow::Node getNode(PathNode n) { result = n.getNode() }
1718

18-
predicate isSource(Flow::PathNode n) { n.isSource() }
19+
predicate isSource(PathNode n) { n.isSource() }
1920

20-
Flow::PathNode getASuccessor(Flow::PathNode n) { result = n.getASuccessor() }
21+
PathNode getASuccessor(PathNode n) { result = n.getASuccessor() }
2122

2223
JavaDataFlow::DataFlowCallable getARuntimeTarget(JavaDataFlow::DataFlowCall call) {
2324
result.asCallable() = call.asCall().getCallee()
@@ -29,12 +30,12 @@ private module FlowStackInput<DataFlow::ConfigSig Config>
2930
}
3031

3132
module DataFlowStackMake<DataFlow::ConfigSig Config> {
32-
import LanguageDataFlowStack::FlowStack<DataFlow::Global<Config>, Config, FlowStackInput<Config>>
33+
import LanguageFlowStack::FlowStack<Config, FlowStackInput<Config>>
3334
}
3435

3536
module BiStackAnalysisMake<
3637
DataFlow::ConfigSig ConfigA,
3738
DataFlow::ConfigSig ConfigB
3839
>{
39-
import LanguageDataFlowStack::BiStackAnalysis<ConfigA, DataFlow::Global<ConfigA>, FlowStackInput<ConfigA>, ConfigB, DataFlow::Global<ConfigB>, FlowStackInput<ConfigB>>
40+
import LanguageFlowStack::BiStackAnalysis<ConfigA, FlowStackInput<ConfigA>, ConfigB, FlowStackInput<ConfigB>>
4041
}

java/ql/lib/semmle/code/java/dataflow/TaintTrackingStack.qll

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,21 @@ private import semmle.code.java.dataflow.DataFlow
66
private import semmle.code.java.dataflow.TaintTracking
77
private import semmle.code.java.dataflow.internal.DataFlowImplSpecific
88
private import semmle.code.java.dataflow.internal.TaintTrackingImplSpecific
9-
private import codeql.dataflowstack.TaintTrackingStack as TTS
9+
private import codeql.dataflowstack.FlowStack as FlowStack
1010

11-
module LanguageTaintTrackingStack = TTS::LanguageTaintTracking<Location, JavaDataFlow, JavaTaintTracking>;
11+
module LanguageFlowStack = FlowStack::LanguageDataFlow<Location, JavaDataFlow>;
1212

13-
private module TaintTrackingStackInput<DataFlow::ConfigSig Config>
14-
implements LanguageTaintTrackingStack::DataFlowGroup<Config>::TaintTrackingStackSig<TaintTracking::Global<Config>>
13+
private module FlowStackInput<DataFlow::ConfigSig Config>
14+
implements LanguageFlowStack::DataFlowConfigContext<Config>::FlowInstance
1515
{
1616
private module Flow = TaintTracking::Global<Config>;
17+
class PathNode = Flow::PathNode;
1718

18-
JavaDataFlow::Node getNode(Flow::PathNode n) { result = n.getNode() }
19+
JavaDataFlow::Node getNode(PathNode n) { result = n.getNode() }
1920

20-
predicate isSource(Flow::PathNode n) { n.isSource() }
21+
predicate isSource(PathNode n) { n.isSource() }
2122

22-
Flow::PathNode getASuccessor(Flow::PathNode n) { result = n.getASuccessor() }
23+
PathNode getASuccessor(PathNode n) { result = n.getASuccessor() }
2324

2425
JavaDataFlow::DataFlowCallable getARuntimeTarget(JavaDataFlow::DataFlowCall call) {
2526
result.asCallable() = call.asCall().getCallee()
@@ -31,12 +32,12 @@ private module TaintTrackingStackInput<DataFlow::ConfigSig Config>
3132
}
3233

3334
module DataFlowStackMake<DataFlow::ConfigSig Config> {
34-
import LanguageTaintTrackingStack::FlowStack<TaintTracking::Global<Config>, Config, TaintTrackingStackInput<Config>>
35+
import LanguageFlowStack::FlowStack<Config, FlowStackInput<Config>>
3536
}
3637

3738
module BiStackAnalysisMake<
3839
DataFlow::ConfigSig ConfigA,
3940
DataFlow::ConfigSig ConfigB
4041
>{
41-
import LanguageTaintTrackingStack::BiStackAnalysis<ConfigA, TaintTracking::Global<ConfigA>, TaintTrackingStackInput<ConfigA>, ConfigB, TaintTracking::Global<ConfigB>, TaintTrackingStackInput<ConfigB>>
42+
import LanguageFlowStack::BiStackAnalysis<ConfigA, FlowStackInput<ConfigA>, ConfigB, FlowStackInput<ConfigB>>
4243
}

0 commit comments

Comments
 (0)