Skip to content

Commit 2d0f73d

Browse files
authored
Merge pull request github#13881 from jketema/shared-taint-tracking
Introduce shared taint tracking library
2 parents c8c69aa + a2bb7de commit 2d0f73d

File tree

34 files changed

+246
-625
lines changed

34 files changed

+246
-625
lines changed

config/identical-files.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,6 @@
3232
"ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForPathname.qll",
3333
"swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll"
3434
],
35-
"TaintTracking Java/C++/C#/Go/Python/Ruby/Swift": [
36-
"cpp/ql/lib/semmle/code/cpp/dataflow/internal/tainttracking1/TaintTracking.qll",
37-
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/tainttracking1/TaintTracking.qll",
38-
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/tainttracking1/TaintTracking.qll",
39-
"go/ql/lib/semmle/go/dataflow/internal/tainttracking1/TaintTracking.qll",
40-
"java/ql/lib/semmle/code/java/dataflow/internal/tainttracking1/TaintTracking.qll",
41-
"python/ql/lib/semmle/python/dataflow/new/internal/tainttracking1/TaintTracking.qll",
42-
"ruby/ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTracking.qll",
43-
"swift/ql/lib/codeql/swift/dataflow/internal/tainttracking1/TaintTracking.qll"
44-
],
4535
"TaintTracking Legacy Configuration Java/C++/C#/Go/Python/Ruby/Swift": [
4636
"cpp/ql/lib/semmle/code/cpp/dataflow/internal/tainttracking1/TaintTrackingImpl.qll",
4737
"cpp/ql/lib/semmle/code/cpp/dataflow/internal/tainttracking2/TaintTrackingImpl.qll",

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ import semmle.code.cpp.dataflow.DataFlow2
2525
* global (inter-procedural) taint-tracking analyses.
2626
*/
2727
deprecated module TaintTracking {
28-
import semmle.code.cpp.dataflow.internal.tainttracking1.TaintTracking
28+
import semmle.code.cpp.dataflow.internal.tainttracking1.TaintTrackingParameter::Public
29+
private import semmle.code.cpp.dataflow.internal.DataFlowImplSpecific
30+
private import semmle.code.cpp.dataflow.internal.TaintTrackingImplSpecific
31+
private import codeql.dataflow.TaintTracking
32+
import TaintFlowMake<CppOldDataFlow, CppOldTaintTracking>
2933
import semmle.code.cpp.dataflow.internal.tainttracking1.TaintTrackingImpl
3034
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* Provides C++-specific definitions for use in the taint tracking library.
3+
*/
4+
5+
private import codeql.dataflow.TaintTracking
6+
private import DataFlowImplSpecific
7+
8+
module CppOldTaintTracking implements InputSig<CppOldDataFlow> {
9+
import TaintTrackingUtil
10+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ predicate defaultAdditionalTaintStep(DataFlow::Node src, DataFlow::Node sink) {
3939
* of `c` at sinks and inputs to additional taint steps.
4040
*/
4141
bindingset[node]
42-
predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::Content c) { none() }
42+
predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::ContentSet c) { none() }
4343

4444
/**
4545
* Holds if `node` should be a sanitizer in all global taint flow configurations

cpp/ql/lib/semmle/code/cpp/dataflow/internal/tainttracking1/TaintTracking.qll

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

cpp/ql/lib/semmle/code/cpp/dataflow/new/TaintTracking.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ import semmle.code.cpp.dataflow.new.DataFlow2
2323
* global (inter-procedural) taint-tracking analyses.
2424
*/
2525
module TaintTracking {
26-
import semmle.code.cpp.ir.dataflow.internal.tainttracking1.TaintTracking
26+
import semmle.code.cpp.ir.dataflow.internal.tainttracking1.TaintTrackingParameter::Public
27+
private import semmle.code.cpp.ir.dataflow.internal.DataFlowImplSpecific
28+
private import semmle.code.cpp.ir.dataflow.internal.TaintTrackingImplSpecific
29+
private import codeql.dataflow.TaintTracking
30+
import TaintFlowMake<CppDataFlow, CppTaintTracking>
2731
import semmle.code.cpp.ir.dataflow.internal.tainttracking1.TaintTrackingImpl
2832
}

cpp/ql/lib/semmle/code/cpp/ir/dataflow/TaintTracking.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ import semmle.code.cpp.ir.dataflow.DataFlow
1919
import semmle.code.cpp.ir.dataflow.DataFlow2
2020

2121
module TaintTracking {
22-
import semmle.code.cpp.ir.dataflow.internal.tainttracking1.TaintTracking
22+
import semmle.code.cpp.ir.dataflow.internal.tainttracking1.TaintTrackingParameter::Public
23+
private import semmle.code.cpp.ir.dataflow.internal.DataFlowImplSpecific
24+
private import semmle.code.cpp.ir.dataflow.internal.TaintTrackingImplSpecific
25+
private import codeql.dataflow.TaintTracking
26+
import TaintFlowMake<CppDataFlow, CppTaintTracking>
2327
import semmle.code.cpp.ir.dataflow.internal.tainttracking1.TaintTrackingImpl
2428
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* Provides C++-specific definitions for use in the taint tracking library.
3+
*/
4+
5+
private import codeql.dataflow.TaintTracking
6+
private import DataFlowImplSpecific
7+
8+
module CppTaintTracking implements InputSig<CppDataFlow> {
9+
import TaintTrackingUtil
10+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ predicate defaultAdditionalTaintStep(DataFlow::Node src, DataFlow::Node sink) {
112112
* of `c` at sinks and inputs to additional taint steps.
113113
*/
114114
bindingset[node]
115-
predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::Content c) { none() }
115+
predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::ContentSet c) { none() }
116116

117117
/**
118118
* Holds if `node` should be a sanitizer in all global taint flow configurations

cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/tainttracking1/TaintTracking.qll

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

0 commit comments

Comments
 (0)