Skip to content

Commit beef8e2

Browse files
authored
Merge pull request #8332 from hvitved/ruby/regexp-taint-flow
Ruby: Use taint tracking instead of type tracking to define `regExpSource`
2 parents 117fb5b + 1437aef commit beef8e2

File tree

6 files changed

+5514
-21
lines changed

6 files changed

+5514
-21
lines changed

config/identical-files.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
"python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll",
2828
"python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll",
2929
"ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll",
30-
"ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll"
30+
"ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll",
31+
"ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll"
3132
],
3233
"DataFlow Java/C++/C#/Python Common": [
3334
"java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll",
@@ -54,7 +55,8 @@
5455
"python/ql/lib/semmle/python/dataflow/new/internal/tainttracking2/TaintTrackingImpl.qll",
5556
"python/ql/lib/semmle/python/dataflow/new/internal/tainttracking3/TaintTrackingImpl.qll",
5657
"python/ql/lib/semmle/python/dataflow/new/internal/tainttracking4/TaintTrackingImpl.qll",
57-
"ruby/ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTrackingImpl.qll"
58+
"ruby/ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTrackingImpl.qll",
59+
"ruby/ql/lib/codeql/ruby/dataflow/internal/tainttrackingforlibraries/TaintTrackingImpl.qll"
5860
],
5961
"DataFlow Java/C++/C#/Python Consistency checks": [
6062
"java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll",

ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -794,6 +794,20 @@ module ExprNodes {
794794
final override VariableWriteAccess getExpr() { result = ExprCfgNode.super.getExpr() }
795795
}
796796

797+
/** A control-flow node that wraps a `ConstantReadAccess` AST expression. */
798+
class ConstantReadAccessCfgNode extends ExprCfgNode {
799+
override ConstantReadAccess e;
800+
801+
final override ConstantReadAccess getExpr() { result = ExprCfgNode.super.getExpr() }
802+
}
803+
804+
/** A control-flow node that wraps a `ConstantWriteAccess` AST expression. */
805+
class ConstantWriteAccessCfgNode extends ExprCfgNode {
806+
override ConstantWriteAccess e;
807+
808+
final override ConstantWriteAccess getExpr() { result = ExprCfgNode.super.getExpr() }
809+
}
810+
797811
/** A control-flow node that wraps a `InstanceVariableWriteAccess` AST expression. */
798812
class InstanceVariableWriteAccessCfgNode extends ExprCfgNode {
799813
override InstanceVariableWriteAccess e;

0 commit comments

Comments
 (0)