Skip to content

Commit 8b6a798

Browse files
committed
Refactor the traint-tracking library to follow the dataflow library refactoring
1 parent 5d2984b commit 8b6a798

File tree

10 files changed

+44
-50
lines changed

10 files changed

+44
-50
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* Provides C++-specific definitions for use in the taint tracking library.
33
*/
44

5-
private import codeql.dataflow.TaintTrackingParameter
5+
private import codeql.dataflow.TaintTracking
66
private import DataFlowImplSpecific
77

8-
module CppOldTaintTracking implements TaintTrackingParameter<CppOldDataFlow> {
8+
module CppOldTaintTracking implements InputSig<CppOldDataFlow> {
99
import TaintTrackingUtil
1010
}

cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingImplSpecific.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* Provides C++-specific definitions for use in the taint tracking library.
33
*/
44

5-
private import codeql.dataflow.TaintTrackingParameter
5+
private import codeql.dataflow.TaintTracking
66
private import DataFlowImplSpecific
77

8-
module CppTaintTracking implements TaintTrackingParameter<CppDataFlow> {
8+
module CppTaintTracking implements InputSig<CppDataFlow> {
99
import TaintTrackingUtil
1010
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* Provides C#-specific definitions for use in the taint tracking library.
33
*/
44

5-
private import codeql.dataflow.TaintTrackingParameter
5+
private import codeql.dataflow.TaintTracking
66
private import DataFlowImplSpecific
77

8-
module CsharpTaintTracking implements TaintTrackingParameter<CsharpDataFlow> {
8+
module CsharpTaintTracking implements InputSig<CsharpDataFlow> {
99
import TaintTrackingPrivate
1010
}

go/ql/lib/semmle/go/dataflow/internal/TaintTrackingImplSpecific.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* Provides Go-specific definitions for use in the taint tracking library.
33
*/
44

5-
private import codeql.dataflow.TaintTrackingParameter
5+
private import codeql.dataflow.TaintTracking
66
private import DataFlowImplSpecific
77

8-
module GoTaintTracking implements TaintTrackingParameter<GoDataFlow> {
8+
module GoTaintTracking implements InputSig<GoDataFlow> {
99
import TaintTrackingUtil
1010
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* Provides Java-specific definitions for use in the taint tracking library.
33
*/
44

5-
private import codeql.dataflow.TaintTrackingParameter
5+
private import codeql.dataflow.TaintTracking
66
private import DataFlowImplSpecific
77

8-
module JavaTaintTracking implements TaintTrackingParameter<JavaDataFlow> {
8+
module JavaTaintTracking implements InputSig<JavaDataFlow> {
99
import TaintTrackingUtil
1010
}

python/ql/lib/semmle/python/dataflow/new/internal/TaintTrackingImplSpecific.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* Provides Python-specific definitions for use in the taint tracking library.
33
*/
44

5-
private import codeql.dataflow.TaintTrackingParameter
5+
private import codeql.dataflow.TaintTracking
66
private import DataFlowImplSpecific
77

8-
module PythonTaintTracking implements TaintTrackingParameter<PythonDataFlow> {
8+
module PythonTaintTracking implements InputSig<PythonDataFlow> {
99
import TaintTrackingPrivate
1010
}

ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingImplSpecific.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* Provides Ruby-specific definitions for use in the taint tracking library.
33
*/
44

5-
private import codeql.dataflow.TaintTrackingParameter
5+
private import codeql.dataflow.TaintTracking
66
private import DataFlowImplSpecific
77

8-
module RubyTaintTracking implements TaintTrackingParameter<RubyDataFlow> {
8+
module RubyTaintTracking implements InputSig<RubyDataFlow> {
99
import TaintTrackingPrivate
1010
}

shared/dataflow/codeql/dataflow/TaintTracking.qll

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,39 @@
33
* global (inter-procedural) taint-tracking analyses.
44
*/
55

6-
private import DataFlow
7-
private import DataFlowImpl
8-
private import DataFlowParameter
9-
import TaintTrackingParameter
6+
private import DataFlow as DF
7+
private import internal.DataFlowImpl
8+
9+
/**
10+
* Provides language-specific taint-tracking parameters.
11+
*/
12+
signature module InputSig<DF::InputSig Lang> {
13+
/**
14+
* Holds if `node` should be a sanitizer in all global taint flow configurations
15+
* but not in local taint.
16+
*/
17+
predicate defaultTaintSanitizer(Lang::Node node);
18+
19+
/**
20+
* Holds if the additional step from `src` to `sink` should be included in all
21+
* global taint flow configurations.
22+
*/
23+
predicate defaultAdditionalTaintStep(Lang::Node src, Lang::Node sink);
24+
25+
/**
26+
* Holds if taint flow configurations should allow implicit reads of `c` at sinks
27+
* and inputs to additional taint steps.
28+
*/
29+
bindingset[node]
30+
predicate defaultImplicitTaintRead(Lang::Node node, Lang::ContentSet c);
31+
}
1032

1133
/**
1234
* Construct the modules for taint-tracking analyses.
1335
*/
14-
module TaintFlowMake<
15-
DataFlowParameter DataFlowLang, TaintTrackingParameter<DataFlowLang> TaintTrackingLang>
16-
{
36+
module TaintFlowMake<DF::InputSig DataFlowLang, InputSig<DataFlowLang> TaintTrackingLang> {
1737
private import TaintTrackingLang
18-
private import DataFlowMake<DataFlowLang> as DataFlow
38+
private import DF::DataFlowMake<DataFlowLang> as DataFlow
1939
private import MakeImpl<DataFlowLang> as DataFlowInternal
2040

2141
private module AddTaintDefaults<DataFlowInternal::FullStateConfigSig Config> implements

shared/dataflow/codeql/dataflow/TaintTrackingParameter.qll

Lines changed: 0 additions & 26 deletions
This file was deleted.

swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingImplSpecific.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
* Provides Swift-specific definitions for use in the taint tracking library.
33
*/
44

5-
private import codeql.dataflow.TaintTrackingParameter
5+
private import codeql.dataflow.TaintTracking
66
private import DataFlowImplSpecific
77

8-
module SwiftTaintTracking implements TaintTrackingParameter<SwiftDataFlow> {
8+
module SwiftTaintTracking implements InputSig<SwiftDataFlow> {
99
import TaintTrackingPrivate
1010
import TaintTrackingPublic
1111
}

0 commit comments

Comments
 (0)