Skip to content

Commit ef48466

Browse files
committed
Java: Implement new data flow interface
1 parent c705e02 commit ef48466

File tree

11 files changed

+21
-17
lines changed

11 files changed

+21
-17
lines changed

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

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

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ module TaintTracking {
1212
private import semmle.code.java.dataflow.internal.DataFlowImplSpecific
1313
private import semmle.code.java.dataflow.internal.TaintTrackingImplSpecific
1414
private import codeql.dataflow.TaintTracking
15-
import TaintFlowMake<JavaDataFlow, JavaTaintTracking>
15+
import TaintFlowMake<Location, JavaDataFlow, JavaTaintTracking>
1616
import semmle.code.java.dataflow.internal.tainttracking1.TaintTrackingImpl
1717
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
private import DataFlowImplSpecific
22
private import codeql.dataflow.internal.DataFlowImpl
3-
import MakeImpl<JavaDataFlow>
3+
private import semmle.code.Location
4+
import MakeImpl<Location, JavaDataFlow>
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
private import DataFlowImplSpecific
2+
private import semmle.code.Location
23
private import codeql.dataflow.internal.DataFlowImplCommon
3-
import MakeImplCommon<JavaDataFlow>
4+
import MakeImplCommon<Location, JavaDataFlow>

java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ private import DataFlowImplSpecific
88
private import TaintTrackingImplSpecific
99
private import codeql.dataflow.internal.DataFlowImplConsistency
1010

11-
private module Input implements InputSig<JavaDataFlow> {
11+
private module Input implements InputSig<Location, JavaDataFlow> {
1212
predicate argHasPostUpdateExclude(JavaDataFlow::ArgumentNode n) {
1313
n.getType() instanceof ImmutableType or n instanceof Public::ImplicitVarargsArray
1414
}
1515
}
1616

17-
module Consistency = MakeConsistency<JavaDataFlow, JavaTaintTracking, Input>;
17+
module Consistency = MakeConsistency<Location, JavaDataFlow, JavaTaintTracking, Input>;

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

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

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

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

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

java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll

+1-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ module Public {
163163
* For more information, see
164164
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
165165
*/
166-
predicate hasLocationInfo(
166+
deprecated predicate hasLocationInfo(
167167
string filepath, int startline, int startcolumn, int endline, int endcolumn
168168
) {
169169
this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ private string positionToString(int pos) {
2626
if pos = -1 then result = "this" else result = pos.toString()
2727
}
2828

29-
module Input implements InputSig<DataFlowImplSpecific::JavaDataFlow> {
29+
module Input implements InputSig<Location, DataFlowImplSpecific::JavaDataFlow> {
3030
class SummarizedCallableBase = FlowSummary::SummarizedCallableBase;
3131

3232
ArgumentPosition callbackSelfParameterPosition() { result = -1 }
@@ -85,7 +85,7 @@ module Input implements InputSig<DataFlowImplSpecific::JavaDataFlow> {
8585
}
8686
}
8787

88-
private import Make<DataFlowImplSpecific::JavaDataFlow, Input> as Impl
88+
private import Make<Location, DataFlowImplSpecific::JavaDataFlow, Input> as Impl
8989

9090
private module TypesInput implements Impl::Private::TypesInputSig {
9191
DataFlowType getSyntheticGlobalType(Impl::Private::SyntheticGlobal sg) {
@@ -186,7 +186,7 @@ private predicate correspondingKotlinParameterDefaultsArgSpec(
186186
}
187187

188188
module SourceSinkInterpretationInput implements
189-
Impl::Private::External::SourceSinkInterpretationInputSig<Location>
189+
Impl::Private::External::SourceSinkInterpretationInputSig
190190
{
191191
private import java as J
192192

@@ -294,7 +294,7 @@ module Private {
294294

295295
module External {
296296
import Impl::Private::External
297-
import Impl::Private::External::SourceSinkInterpretation<Location, SourceSinkInterpretationInput>
297+
import Impl::Private::External::SourceSinkInterpretation<SourceSinkInterpretationInput>
298298

299299
/**
300300
* Holds if an external flow summary exists for `c` with input specification

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
private import codeql.dataflow.TaintTracking
66
private import DataFlowImplSpecific
7+
private import semmle.code.Location
78

8-
module JavaTaintTracking implements InputSig<JavaDataFlow> {
9+
module JavaTaintTracking implements InputSig<Location, JavaDataFlow> {
910
import TaintTrackingUtil
1011
}

java/ql/test-kotlin1/TestUtilities/InlineFlowTest.qll

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ private import semmle.code.java.dataflow.internal.DataFlowImplSpecific
1010
private import semmle.code.java.dataflow.internal.TaintTrackingImplSpecific
1111
private import internal.InlineExpectationsTestImpl
1212

13-
private module FlowTestImpl implements InputSig<JavaDataFlow> {
13+
private module FlowTestImpl implements InputSig<Location, JavaDataFlow> {
1414
predicate defaultSource(DataFlow::Node source) {
1515
source.asExpr().(MethodCall).getMethod().getName() = ["source", "taint"]
1616
}
@@ -30,4 +30,4 @@ private module FlowTestImpl implements InputSig<JavaDataFlow> {
3030
}
3131
}
3232

33-
import InlineFlowTestMake<JavaDataFlow, JavaTaintTracking, Impl, FlowTestImpl>
33+
import InlineFlowTestMake<Location, JavaDataFlow, JavaTaintTracking, Impl, FlowTestImpl>

java/ql/test/TestUtilities/InlineFlowTest.qll

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ private import semmle.code.java.dataflow.internal.DataFlowImplSpecific
1010
private import semmle.code.java.dataflow.internal.TaintTrackingImplSpecific
1111
private import internal.InlineExpectationsTestImpl
1212

13-
private module FlowTestImpl implements InputSig<JavaDataFlow> {
13+
private module FlowTestImpl implements InputSig<Location, JavaDataFlow> {
1414
predicate defaultSource(DataFlow::Node source) {
1515
source.asExpr().(MethodCall).getMethod().getName() = ["source", "taint"]
1616
}
@@ -30,4 +30,4 @@ private module FlowTestImpl implements InputSig<JavaDataFlow> {
3030
}
3131
}
3232

33-
import InlineFlowTestMake<JavaDataFlow, JavaTaintTracking, Impl, FlowTestImpl>
33+
import InlineFlowTestMake<Location, JavaDataFlow, JavaTaintTracking, Impl, FlowTestImpl>

0 commit comments

Comments
 (0)