Skip to content

Commit 3e402d3

Browse files
committed
C#: Implement new data flow interface
1 parent d128574 commit 3e402d3

File tree

10 files changed

+19
-15
lines changed

10 files changed

+19
-15
lines changed

csharp/ql/consistency-queries/DataFlowConsistency.ql

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific
44
private import semmle.code.csharp.dataflow.internal.TaintTrackingImplSpecific
55
private import codeql.dataflow.internal.DataFlowImplConsistency
66

7-
private module Input implements InputSig<CsharpDataFlow> {
7+
private module Input implements InputSig<Location, CsharpDataFlow> {
88
private import CsharpDataFlow
99

1010
private predicate isStaticAssignable(Assignable a) { a.(Modifiable).isStatic() }
@@ -99,4 +99,4 @@ private module Input implements InputSig<CsharpDataFlow> {
9999
}
100100
}
101101

102-
import MakeConsistency<CsharpDataFlow, CsharpTaintTracking, Input>
102+
import MakeConsistency<Location, CsharpDataFlow, CsharpTaintTracking, Input>

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ import csharp
88
module DataFlow {
99
private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific
1010
private import codeql.dataflow.DataFlow
11-
import DataFlowMake<CsharpDataFlow>
11+
import DataFlowMake<Location, CsharpDataFlow>
1212
import semmle.code.csharp.dataflow.internal.DataFlowImpl1
1313
}

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ module TaintTracking {
1010
private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific
1111
private import semmle.code.csharp.dataflow.internal.TaintTrackingImplSpecific
1212
private import codeql.dataflow.TaintTracking
13-
import TaintFlowMake<CsharpDataFlow, CsharpTaintTracking>
13+
import TaintFlowMake<Location, CsharpDataFlow, CsharpTaintTracking>
1414
import semmle.code.csharp.dataflow.internal.tainttracking1.TaintTrackingImpl
1515
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
private import semmle.code.csharp.Location
12
private import DataFlowImplSpecific
23
private import codeql.dataflow.internal.DataFlowImpl
3-
import MakeImpl<CsharpDataFlow>
4+
import MakeImpl<Location, CsharpDataFlow>
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
private import semmle.code.csharp.Location
12
private import DataFlowImplSpecific
23
private import codeql.dataflow.internal.DataFlowImplCommon
3-
import MakeImplCommon<CsharpDataFlow>
4+
import MakeImplCommon<Location, CsharpDataFlow>

csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplSpecific.qll

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
* Provides C#-specific definitions for use in the data flow library.
33
*/
44

5+
private import semmle.code.csharp.Location
56
private import codeql.dataflow.DataFlow
67

78
module Private {
@@ -13,7 +14,7 @@ module Public {
1314
import DataFlowPublic
1415
}
1516

16-
module CsharpDataFlow implements InputSig {
17+
module CsharpDataFlow implements InputSig<Location> {
1718
import Private
1819
import Public
1920

csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class Node extends TNode {
5858
* For more information, see
5959
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
6060
*/
61-
predicate hasLocationInfo(
61+
deprecated predicate hasLocationInfo(
6262
string filepath, int startline, int startcolumn, int endline, int endcolumn
6363
) {
6464
this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)

csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll

+4-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ private import DataFlowImplSpecific::Public
1212
private import semmle.code.csharp.Unification
1313
private import semmle.code.csharp.dataflow.internal.ExternalFlow
1414

15-
module Input implements InputSig<DataFlowImplSpecific::CsharpDataFlow> {
15+
module Input implements InputSig<Location, DataFlowImplSpecific::CsharpDataFlow> {
1616
class SummarizedCallableBase = UnboundCallable;
1717

1818
ArgumentPosition callbackSelfParameterPosition() { result.isDelegateSelf() }
@@ -80,7 +80,7 @@ module Input implements InputSig<DataFlowImplSpecific::CsharpDataFlow> {
8080
}
8181
}
8282

83-
private import Make<DataFlowImplSpecific::CsharpDataFlow, Input> as Impl
83+
private import Make<Location, DataFlowImplSpecific::CsharpDataFlow, Input> as Impl
8484

8585
private module TypesInput implements Impl::Private::TypesInputSig {
8686
DataFlowType getSyntheticGlobalType(Impl::Private::SyntheticGlobal sg) {
@@ -154,7 +154,7 @@ private module StepsInput implements Impl::Private::StepsInputSig {
154154
}
155155

156156
module SourceSinkInterpretationInput implements
157-
Impl::Private::External::SourceSinkInterpretationInputSig<Location>
157+
Impl::Private::External::SourceSinkInterpretationInputSig
158158
{
159159
private import csharp as Cs
160160

@@ -252,7 +252,7 @@ module Private {
252252

253253
module External {
254254
import Impl::Private::External
255-
import Impl::Private::External::SourceSinkInterpretation<Location, SourceSinkInterpretationInput>
255+
import Impl::Private::External::SourceSinkInterpretation<SourceSinkInterpretationInput>
256256
}
257257

258258
private module SummaryComponentInternal = Impl::Private::SummaryComponent;

csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingImplSpecific.qll

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
* Provides C#-specific definitions for use in the taint tracking library.
33
*/
44

5+
private import semmle.code.csharp.Location
56
private import codeql.dataflow.TaintTracking
67
private import DataFlowImplSpecific
78

8-
module CsharpTaintTracking implements InputSig<CsharpDataFlow> {
9+
module CsharpTaintTracking implements InputSig<Location, CsharpDataFlow> {
910
import TaintTrackingPrivate
1011
}

csharp/ql/test/TestUtilities/InlineFlowTest.qll

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific
99
private import semmle.code.csharp.dataflow.internal.TaintTrackingImplSpecific
1010
private import internal.InlineExpectationsTestImpl
1111

12-
private module FlowTestImpl implements InputSig<CsharpDataFlow> {
12+
private module FlowTestImpl implements InputSig<Location, CsharpDataFlow> {
1313
predicate defaultSource(DataFlow::Node source) {
1414
source.asExpr().(MethodCall).getTarget().getUndecoratedName() = ["Source", "Taint"]
1515
}
@@ -35,4 +35,4 @@ private module FlowTestImpl implements InputSig<CsharpDataFlow> {
3535
}
3636
}
3737

38-
import InlineFlowTestMake<CsharpDataFlow, CsharpTaintTracking, Impl, FlowTestImpl>
38+
import InlineFlowTestMake<Location, CsharpDataFlow, CsharpTaintTracking, Impl, FlowTestImpl>

0 commit comments

Comments
 (0)