mirror of
https://github.com/github/codeql.git
synced 2026-05-05 21:55:19 +02:00
Ruby: address comments
This commit is contained in:
@@ -210,7 +210,7 @@ class FindPattern extends CasePattern, TFindPattern {
|
||||
CasePattern getAnElement() { result = this.getElement(_) }
|
||||
|
||||
/**
|
||||
* Gets the variable for the prefix of this list pattern, if any. For example `init` in:
|
||||
* Gets the variable for the prefix of this find pattern, if any. For example `init` in:
|
||||
* ```rb
|
||||
* in List[*init, "a", Integer => x, *tail]
|
||||
* ```
|
||||
@@ -220,7 +220,7 @@ class FindPattern extends CasePattern, TFindPattern {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the variable for the suffix of this list pattern, if any. For example `tail` in:
|
||||
* Gets the variable for the suffix of this find pattern, if any. For example `tail` in:
|
||||
* ```rb
|
||||
* in List[*init, "a", Integer => x, *tail]
|
||||
* ```
|
||||
|
||||
@@ -412,9 +412,7 @@ module ExprNodes {
|
||||
class InClauseCfgNode extends AstCfgNode {
|
||||
override InClauseChildMapping e;
|
||||
|
||||
/**
|
||||
* Gets the pattern in this `in`-clause.
|
||||
*/
|
||||
/** Gets the pattern in this `in`-clause. */
|
||||
final AstCfgNode getPattern() { e.hasCfgChild(e.getPattern(), this, result) }
|
||||
|
||||
/** Gets the pattern guard condition in this `in` clause, if any. */
|
||||
@@ -449,7 +447,7 @@ module ExprNodes {
|
||||
}
|
||||
}
|
||||
|
||||
/** A control-flow node that wraps a `ArrayPattern` node. */
|
||||
/** A control-flow node that wraps an `ArrayPattern` node. */
|
||||
class ArrayPatternCfgNode extends CasePatternCfgNode {
|
||||
override ArrayPatternChildMapping e;
|
||||
|
||||
@@ -484,12 +482,12 @@ module ExprNodes {
|
||||
/** Gets the `n`th element of this find pattern. */
|
||||
final CasePatternCfgNode getElement(int n) { e.hasCfgChild(e.getElement(n), this, result) }
|
||||
|
||||
/** Gets the variable for the prefix of this list pattern, if any. */
|
||||
/** Gets the variable for the prefix of this find pattern, if any. */
|
||||
final VariableWriteAccessCfgNode getPrefixVariableAccess() {
|
||||
e.hasCfgChild(e.getPrefixVariableAccess(), this, result)
|
||||
}
|
||||
|
||||
/** Gets the variable for the suffix of this list pattern, if any. */
|
||||
/** Gets the variable for the suffix of this find pattern, if any. */
|
||||
final VariableWriteAccessCfgNode getSuffixVariableAccess() {
|
||||
e.hasCfgChild(e.getSuffixVariableAccess(), this, result)
|
||||
}
|
||||
@@ -519,7 +517,7 @@ module ExprNodes {
|
||||
override predicate relevantChild(AstNode e) { e = this.getAnAlternative() }
|
||||
}
|
||||
|
||||
/** A control-flow node that wraps a `AlternativePattern` node. */
|
||||
/** A control-flow node that wraps an `AlternativePattern` node. */
|
||||
class AlternativePatternCfgNode extends CasePatternCfgNode {
|
||||
override AlternativePatternChildMapping e;
|
||||
|
||||
@@ -535,7 +533,7 @@ module ExprNodes {
|
||||
}
|
||||
}
|
||||
|
||||
/** A control-flow node that wraps a `AsPattern` node. */
|
||||
/** A control-flow node that wraps an `AsPattern` node. */
|
||||
class AsPatternCfgNode extends CasePatternCfgNode {
|
||||
override AsPatternChildMapping e;
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ module LocalFlow {
|
||||
or
|
||||
nodeFrom.asExpr() = branch.(CfgNodes::ExprNodes::WhenClauseCfgNode).getBody()
|
||||
or
|
||||
nodeFrom.asExpr() = branch and branch instanceof CfgNodes::ExprCfgNode
|
||||
nodeFrom.asExpr() = branch.(CfgNodes::ExprCfgNode)
|
||||
)
|
||||
or
|
||||
exists(CfgNodes::ExprCfgNode exprTo, ReturningStatementNode n |
|
||||
|
||||
@@ -29,35 +29,41 @@ private CfgNodes::ExprNodes::VariableWriteAccessCfgNode variablesInPattern(
|
||||
) {
|
||||
result = p
|
||||
or
|
||||
exists(CfgNodes::ExprNodes::AsPatternCfgNode ap | p = ap |
|
||||
result = variablesInPattern(ap.getPattern()) or
|
||||
result = ap.getVariableAccess()
|
||||
)
|
||||
p =
|
||||
any(CfgNodes::ExprNodes::AsPatternCfgNode ap |
|
||||
result = variablesInPattern(ap.getPattern()) or
|
||||
result = ap.getVariableAccess()
|
||||
)
|
||||
or
|
||||
exists(CfgNodes::ExprNodes::ParenthesizedPatternCfgNode pp | p = pp |
|
||||
result = variablesInPattern(pp.getPattern())
|
||||
)
|
||||
p =
|
||||
any(CfgNodes::ExprNodes::ParenthesizedPatternCfgNode pp |
|
||||
result = variablesInPattern(pp.getPattern())
|
||||
)
|
||||
or
|
||||
exists(CfgNodes::ExprNodes::AlternativePatternCfgNode ap | p = ap |
|
||||
result = variablesInPattern(ap.getAlternative(_))
|
||||
)
|
||||
p =
|
||||
any(CfgNodes::ExprNodes::AlternativePatternCfgNode ap |
|
||||
result = variablesInPattern(ap.getAlternative(_))
|
||||
)
|
||||
or
|
||||
exists(CfgNodes::ExprNodes::ArrayPatternCfgNode ap | p = ap |
|
||||
result = variablesInPattern(ap.getPrefixElement(_)) or
|
||||
result = variablesInPattern(ap.getSuffixElement(_)) or
|
||||
result = ap.getRestVariableAccess()
|
||||
)
|
||||
p =
|
||||
any(CfgNodes::ExprNodes::ArrayPatternCfgNode ap |
|
||||
result = variablesInPattern(ap.getPrefixElement(_)) or
|
||||
result = variablesInPattern(ap.getSuffixElement(_)) or
|
||||
result = ap.getRestVariableAccess()
|
||||
)
|
||||
or
|
||||
exists(CfgNodes::ExprNodes::FindPatternCfgNode fp | p = fp |
|
||||
result = variablesInPattern(fp.getElement(_)) or
|
||||
result = fp.getPrefixVariableAccess() or
|
||||
result = fp.getSuffixVariableAccess()
|
||||
)
|
||||
p =
|
||||
any(CfgNodes::ExprNodes::FindPatternCfgNode fp |
|
||||
result = variablesInPattern(fp.getElement(_)) or
|
||||
result = fp.getPrefixVariableAccess() or
|
||||
result = fp.getSuffixVariableAccess()
|
||||
)
|
||||
or
|
||||
exists(CfgNodes::ExprNodes::HashPatternCfgNode hp | p = hp |
|
||||
result = variablesInPattern(hp.getValue(_)) or
|
||||
result = hp.getRestVariableAccess()
|
||||
)
|
||||
p =
|
||||
any(CfgNodes::ExprNodes::HashPatternCfgNode hp |
|
||||
result = variablesInPattern(hp.getValue(_)) or
|
||||
result = hp.getRestVariableAccess()
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -72,15 +72,15 @@
|
||||
| local_dataflow.rb:51:9:51:15 | "break" | local_dataflow.rb:51:3:51:15 | break |
|
||||
| local_dataflow.rb:60:1:90:3 | self (test_case) | local_dataflow.rb:78:12:78:20 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:78:12:78:20 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:79:18:79:24 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:80:22:80:28 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:82:6:82:12 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:83:6:83:12 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:84:6:84:12 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:85:20:85:26 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:86:26:86:32 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:87:18:87:24 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:79:20:79:26 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:80:24:80:30 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:82:7:82:13 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:83:7:83:13 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:84:7:84:13 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:85:22:85:28 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:86:28:86:34 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:87:20:87:26 | self |
|
||||
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:60:15:60:15 | x |
|
||||
| local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:61:12:61:12 | x |
|
||||
| local_dataflow.rb:61:7:68:5 | case ... | local_dataflow.rb:61:3:68:5 | ... = ... |
|
||||
@@ -111,58 +111,58 @@
|
||||
| local_dataflow.rb:73:7:73:7 | x | local_dataflow.rb:72:7:73:7 | then ... |
|
||||
| local_dataflow.rb:74:3:75:6 | else ... | local_dataflow.rb:69:7:76:5 | case ... |
|
||||
| local_dataflow.rb:75:6:75:6 | x | local_dataflow.rb:74:3:75:6 | else ... |
|
||||
| local_dataflow.rb:78:3:88:3 | ... = ... | local_dataflow.rb:89:6:89:6 | z |
|
||||
| local_dataflow.rb:78:7:88:3 | case ... | local_dataflow.rb:78:3:88:3 | ... = ... |
|
||||
| local_dataflow.rb:78:7:88:3 | case ... | local_dataflow.rb:78:3:88:3 | ... = ... |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:79:18:79:24 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:80:22:80:28 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:82:6:82:12 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:85:20:85:26 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:86:26:86:32 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:87:18:87:24 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:79:18:79:24 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:80:22:80:28 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:82:6:82:12 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:85:20:85:26 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:86:26:86:32 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:87:18:87:24 | self |
|
||||
| local_dataflow.rb:79:11:79:11 | b | local_dataflow.rb:79:23:79:23 | b |
|
||||
| local_dataflow.rb:79:13:79:43 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
|
||||
| local_dataflow.rb:79:18:79:24 | [post] self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:79:18:79:24 | call to sink | local_dataflow.rb:79:13:79:43 | then ... |
|
||||
| local_dataflow.rb:79:18:79:24 | self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:80:6:80:6 | a | local_dataflow.rb:80:11:80:11 | a |
|
||||
| local_dataflow.rb:80:11:80:11 | [post] a | local_dataflow.rb:80:27:80:27 | a |
|
||||
| local_dataflow.rb:80:11:80:11 | a | local_dataflow.rb:80:27:80:27 | a |
|
||||
| local_dataflow.rb:80:17:80:47 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
|
||||
| local_dataflow.rb:80:22:80:28 | [post] self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:80:22:80:28 | call to sink | local_dataflow.rb:80:17:80:47 | then ... |
|
||||
| local_dataflow.rb:80:22:80:28 | self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:81:7:81:7 | c | local_dataflow.rb:82:11:82:11 | c |
|
||||
| local_dataflow.rb:81:11:81:11 | d | local_dataflow.rb:83:11:83:11 | d |
|
||||
| local_dataflow.rb:81:14:81:14 | e | local_dataflow.rb:84:11:84:11 | e |
|
||||
| local_dataflow.rb:81:18:84:32 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
|
||||
| local_dataflow.rb:81:23:84:13 | call to [] | local_dataflow.rb:81:18:84:32 | then ... |
|
||||
| local_dataflow.rb:82:6:82:12 | [post] self | local_dataflow.rb:83:6:83:12 | self |
|
||||
| local_dataflow.rb:82:6:82:12 | self | local_dataflow.rb:83:6:83:12 | self |
|
||||
| local_dataflow.rb:83:6:83:12 | [post] self | local_dataflow.rb:84:6:84:12 | self |
|
||||
| local_dataflow.rb:83:6:83:12 | self | local_dataflow.rb:84:6:84:12 | self |
|
||||
| local_dataflow.rb:84:6:84:12 | [post] self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:84:6:84:12 | self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:85:11:85:11 | f | local_dataflow.rb:85:25:85:25 | f |
|
||||
| local_dataflow.rb:85:15:85:45 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
|
||||
| local_dataflow.rb:85:20:85:26 | [post] self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:85:20:85:26 | call to sink | local_dataflow.rb:85:15:85:45 | then ... |
|
||||
| local_dataflow.rb:85:20:85:26 | self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:86:16:86:16 | g | local_dataflow.rb:86:31:86:31 | g |
|
||||
| local_dataflow.rb:86:21:86:51 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
|
||||
| local_dataflow.rb:86:26:86:32 | [post] self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:86:26:86:32 | call to sink | local_dataflow.rb:86:21:86:51 | then ... |
|
||||
| local_dataflow.rb:86:26:86:32 | self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:87:8:87:8 | x | local_dataflow.rb:87:23:87:23 | x |
|
||||
| local_dataflow.rb:87:13:87:46 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
|
||||
| local_dataflow.rb:87:18:87:24 | [post] self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:87:18:87:24 | self | local_dataflow.rb:89:1:89:7 | self |
|
||||
| local_dataflow.rb:87:23:87:23 | [post] x | local_dataflow.rb:87:27:87:27 | x |
|
||||
| local_dataflow.rb:87:23:87:23 | x | local_dataflow.rb:87:27:87:27 | x |
|
||||
| local_dataflow.rb:87:27:87:27 | x | local_dataflow.rb:87:13:87:46 | then ... |
|
||||
| local_dataflow.rb:78:3:88:5 | ... = ... | local_dataflow.rb:89:8:89:8 | z |
|
||||
| local_dataflow.rb:78:7:88:5 | case ... | local_dataflow.rb:78:3:88:5 | ... = ... |
|
||||
| local_dataflow.rb:78:7:88:5 | case ... | local_dataflow.rb:78:3:88:5 | ... = ... |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:79:20:79:26 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:80:24:80:30 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:82:7:82:13 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:85:22:85:28 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:86:28:86:34 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:87:20:87:26 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:79:20:79:26 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:80:24:80:30 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:82:7:82:13 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:85:22:85:28 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:86:28:86:34 | self |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:87:20:87:26 | self |
|
||||
| local_dataflow.rb:79:13:79:13 | b | local_dataflow.rb:79:25:79:25 | b |
|
||||
| local_dataflow.rb:79:15:79:45 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
|
||||
| local_dataflow.rb:79:20:79:26 | [post] self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:79:20:79:26 | call to sink | local_dataflow.rb:79:15:79:45 | then ... |
|
||||
| local_dataflow.rb:79:20:79:26 | self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:80:8:80:8 | a | local_dataflow.rb:80:13:80:13 | a |
|
||||
| local_dataflow.rb:80:13:80:13 | [post] a | local_dataflow.rb:80:29:80:29 | a |
|
||||
| local_dataflow.rb:80:13:80:13 | a | local_dataflow.rb:80:29:80:29 | a |
|
||||
| local_dataflow.rb:80:19:80:49 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
|
||||
| local_dataflow.rb:80:24:80:30 | [post] self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:80:24:80:30 | call to sink | local_dataflow.rb:80:19:80:49 | then ... |
|
||||
| local_dataflow.rb:80:24:80:30 | self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:81:9:81:9 | c | local_dataflow.rb:82:12:82:12 | c |
|
||||
| local_dataflow.rb:81:13:81:13 | d | local_dataflow.rb:83:12:83:12 | d |
|
||||
| local_dataflow.rb:81:16:81:16 | e | local_dataflow.rb:84:12:84:12 | e |
|
||||
| local_dataflow.rb:81:20:84:33 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
|
||||
| local_dataflow.rb:81:25:84:14 | call to [] | local_dataflow.rb:81:20:84:33 | then ... |
|
||||
| local_dataflow.rb:82:7:82:13 | [post] self | local_dataflow.rb:83:7:83:13 | self |
|
||||
| local_dataflow.rb:82:7:82:13 | self | local_dataflow.rb:83:7:83:13 | self |
|
||||
| local_dataflow.rb:83:7:83:13 | [post] self | local_dataflow.rb:84:7:84:13 | self |
|
||||
| local_dataflow.rb:83:7:83:13 | self | local_dataflow.rb:84:7:84:13 | self |
|
||||
| local_dataflow.rb:84:7:84:13 | [post] self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:84:7:84:13 | self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:85:13:85:13 | f | local_dataflow.rb:85:27:85:27 | f |
|
||||
| local_dataflow.rb:85:17:85:47 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
|
||||
| local_dataflow.rb:85:22:85:28 | [post] self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:85:22:85:28 | call to sink | local_dataflow.rb:85:17:85:47 | then ... |
|
||||
| local_dataflow.rb:85:22:85:28 | self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:86:18:86:18 | g | local_dataflow.rb:86:33:86:33 | g |
|
||||
| local_dataflow.rb:86:23:86:53 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
|
||||
| local_dataflow.rb:86:28:86:34 | [post] self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:86:28:86:34 | call to sink | local_dataflow.rb:86:23:86:53 | then ... |
|
||||
| local_dataflow.rb:86:28:86:34 | self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:87:10:87:10 | x | local_dataflow.rb:87:25:87:25 | x |
|
||||
| local_dataflow.rb:87:15:87:48 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
|
||||
| local_dataflow.rb:87:20:87:26 | [post] self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:87:20:87:26 | self | local_dataflow.rb:89:3:89:9 | self |
|
||||
| local_dataflow.rb:87:25:87:25 | [post] x | local_dataflow.rb:87:29:87:29 | x |
|
||||
| local_dataflow.rb:87:25:87:25 | x | local_dataflow.rb:87:29:87:29 | x |
|
||||
| local_dataflow.rb:87:29:87:29 | x | local_dataflow.rb:87:15:87:48 | then ... |
|
||||
|
||||
@@ -12,7 +12,7 @@ ret
|
||||
| local_dataflow.rb:50:3:50:13 | next |
|
||||
| local_dataflow.rb:51:3:51:15 | break |
|
||||
| local_dataflow.rb:52:3:52:10 | "normal" |
|
||||
| local_dataflow.rb:89:1:89:7 | call to sink |
|
||||
| local_dataflow.rb:89:3:89:9 | call to sink |
|
||||
arg
|
||||
| local_dataflow.rb:3:8:3:10 | self | local_dataflow.rb:3:8:3:10 | call to p | self |
|
||||
| local_dataflow.rb:3:10:3:10 | a | local_dataflow.rb:3:8:3:10 | call to p | position 0 |
|
||||
@@ -51,27 +51,27 @@ arg
|
||||
| local_dataflow.rb:55:12:55:12 | 3 | local_dataflow.rb:55:5:55:13 | call to [] | position 2 |
|
||||
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:78:12:78:20 | call to source | self |
|
||||
| local_dataflow.rb:78:19:78:19 | 1 | local_dataflow.rb:78:12:78:20 | call to source | position 0 |
|
||||
| local_dataflow.rb:79:18:79:24 | self | local_dataflow.rb:79:18:79:24 | call to sink | self |
|
||||
| local_dataflow.rb:79:23:79:23 | b | local_dataflow.rb:79:18:79:24 | call to sink | position 0 |
|
||||
| local_dataflow.rb:80:11:80:11 | a | local_dataflow.rb:80:11:80:15 | ... > ... | self |
|
||||
| local_dataflow.rb:80:15:80:15 | 0 | local_dataflow.rb:80:11:80:15 | ... > ... | position 0 |
|
||||
| local_dataflow.rb:80:22:80:28 | self | local_dataflow.rb:80:22:80:28 | call to sink | self |
|
||||
| local_dataflow.rb:80:27:80:27 | a | local_dataflow.rb:80:22:80:28 | call to sink | position 0 |
|
||||
| local_dataflow.rb:81:23:84:13 | Array | local_dataflow.rb:81:23:84:13 | call to [] | self |
|
||||
| local_dataflow.rb:82:6:82:12 | call to sink | local_dataflow.rb:81:23:84:13 | call to [] | position 0 |
|
||||
| local_dataflow.rb:82:6:82:12 | self | local_dataflow.rb:82:6:82:12 | call to sink | self |
|
||||
| local_dataflow.rb:82:11:82:11 | c | local_dataflow.rb:82:6:82:12 | call to sink | position 0 |
|
||||
| local_dataflow.rb:83:6:83:12 | call to sink | local_dataflow.rb:81:23:84:13 | call to [] | position 1 |
|
||||
| local_dataflow.rb:83:6:83:12 | self | local_dataflow.rb:83:6:83:12 | call to sink | self |
|
||||
| local_dataflow.rb:83:11:83:11 | d | local_dataflow.rb:83:6:83:12 | call to sink | position 0 |
|
||||
| local_dataflow.rb:84:6:84:12 | call to sink | local_dataflow.rb:81:23:84:13 | call to [] | position 2 |
|
||||
| local_dataflow.rb:84:6:84:12 | self | local_dataflow.rb:84:6:84:12 | call to sink | self |
|
||||
| local_dataflow.rb:84:11:84:11 | e | local_dataflow.rb:84:6:84:12 | call to sink | position 0 |
|
||||
| local_dataflow.rb:85:20:85:26 | self | local_dataflow.rb:85:20:85:26 | call to sink | self |
|
||||
| local_dataflow.rb:85:25:85:25 | f | local_dataflow.rb:85:20:85:26 | call to sink | position 0 |
|
||||
| local_dataflow.rb:86:26:86:32 | self | local_dataflow.rb:86:26:86:32 | call to sink | self |
|
||||
| local_dataflow.rb:86:31:86:31 | g | local_dataflow.rb:86:26:86:32 | call to sink | position 0 |
|
||||
| local_dataflow.rb:87:18:87:24 | self | local_dataflow.rb:87:18:87:24 | call to sink | self |
|
||||
| local_dataflow.rb:87:23:87:23 | x | local_dataflow.rb:87:18:87:24 | call to sink | position 0 |
|
||||
| local_dataflow.rb:89:1:89:7 | self | local_dataflow.rb:89:1:89:7 | call to sink | self |
|
||||
| local_dataflow.rb:89:6:89:6 | z | local_dataflow.rb:89:1:89:7 | call to sink | position 0 |
|
||||
| local_dataflow.rb:79:20:79:26 | self | local_dataflow.rb:79:20:79:26 | call to sink | self |
|
||||
| local_dataflow.rb:79:25:79:25 | b | local_dataflow.rb:79:20:79:26 | call to sink | position 0 |
|
||||
| local_dataflow.rb:80:13:80:13 | a | local_dataflow.rb:80:13:80:17 | ... > ... | self |
|
||||
| local_dataflow.rb:80:17:80:17 | 0 | local_dataflow.rb:80:13:80:17 | ... > ... | position 0 |
|
||||
| local_dataflow.rb:80:24:80:30 | self | local_dataflow.rb:80:24:80:30 | call to sink | self |
|
||||
| local_dataflow.rb:80:29:80:29 | a | local_dataflow.rb:80:24:80:30 | call to sink | position 0 |
|
||||
| local_dataflow.rb:81:25:84:14 | Array | local_dataflow.rb:81:25:84:14 | call to [] | self |
|
||||
| local_dataflow.rb:82:7:82:13 | call to sink | local_dataflow.rb:81:25:84:14 | call to [] | position 0 |
|
||||
| local_dataflow.rb:82:7:82:13 | self | local_dataflow.rb:82:7:82:13 | call to sink | self |
|
||||
| local_dataflow.rb:82:12:82:12 | c | local_dataflow.rb:82:7:82:13 | call to sink | position 0 |
|
||||
| local_dataflow.rb:83:7:83:13 | call to sink | local_dataflow.rb:81:25:84:14 | call to [] | position 1 |
|
||||
| local_dataflow.rb:83:7:83:13 | self | local_dataflow.rb:83:7:83:13 | call to sink | self |
|
||||
| local_dataflow.rb:83:12:83:12 | d | local_dataflow.rb:83:7:83:13 | call to sink | position 0 |
|
||||
| local_dataflow.rb:84:7:84:13 | call to sink | local_dataflow.rb:81:25:84:14 | call to [] | position 2 |
|
||||
| local_dataflow.rb:84:7:84:13 | self | local_dataflow.rb:84:7:84:13 | call to sink | self |
|
||||
| local_dataflow.rb:84:12:84:12 | e | local_dataflow.rb:84:7:84:13 | call to sink | position 0 |
|
||||
| local_dataflow.rb:85:22:85:28 | self | local_dataflow.rb:85:22:85:28 | call to sink | self |
|
||||
| local_dataflow.rb:85:27:85:27 | f | local_dataflow.rb:85:22:85:28 | call to sink | position 0 |
|
||||
| local_dataflow.rb:86:28:86:34 | self | local_dataflow.rb:86:28:86:34 | call to sink | self |
|
||||
| local_dataflow.rb:86:33:86:33 | g | local_dataflow.rb:86:28:86:34 | call to sink | position 0 |
|
||||
| local_dataflow.rb:87:20:87:26 | self | local_dataflow.rb:87:20:87:26 | call to sink | self |
|
||||
| local_dataflow.rb:87:25:87:25 | x | local_dataflow.rb:87:20:87:26 | call to sink | position 0 |
|
||||
| local_dataflow.rb:89:3:89:9 | self | local_dataflow.rb:89:3:89:9 | call to sink | self |
|
||||
| local_dataflow.rb:89:8:89:8 | z | local_dataflow.rb:89:3:89:9 | call to sink | position 0 |
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
failures
|
||||
edges
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:79:23:79:23 | b |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:80:27:80:27 | a |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:82:11:82:11 | c |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:83:11:83:11 | d |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:84:11:84:11 | e |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:85:25:85:25 | f |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:86:31:86:31 | g |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:87:23:87:23 | x |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:89:6:89:6 | z |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:79:25:79:25 | b |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:80:29:80:29 | a |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:82:12:82:12 | c |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:83:12:83:12 | d |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:84:12:84:12 | e |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:85:27:85:27 | f |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:86:33:86:33 | g |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:87:25:87:25 | x |
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:89:8:89:8 | z |
|
||||
nodes
|
||||
| local_dataflow.rb:78:12:78:20 | call to source : | semmle.label | call to source : |
|
||||
| local_dataflow.rb:79:23:79:23 | b | semmle.label | b |
|
||||
| local_dataflow.rb:80:27:80:27 | a | semmle.label | a |
|
||||
| local_dataflow.rb:82:11:82:11 | c | semmle.label | c |
|
||||
| local_dataflow.rb:83:11:83:11 | d | semmle.label | d |
|
||||
| local_dataflow.rb:84:11:84:11 | e | semmle.label | e |
|
||||
| local_dataflow.rb:85:25:85:25 | f | semmle.label | f |
|
||||
| local_dataflow.rb:86:31:86:31 | g | semmle.label | g |
|
||||
| local_dataflow.rb:87:23:87:23 | x | semmle.label | x |
|
||||
| local_dataflow.rb:89:6:89:6 | z | semmle.label | z |
|
||||
| local_dataflow.rb:79:25:79:25 | b | semmle.label | b |
|
||||
| local_dataflow.rb:80:29:80:29 | a | semmle.label | a |
|
||||
| local_dataflow.rb:82:12:82:12 | c | semmle.label | c |
|
||||
| local_dataflow.rb:83:12:83:12 | d | semmle.label | d |
|
||||
| local_dataflow.rb:84:12:84:12 | e | semmle.label | e |
|
||||
| local_dataflow.rb:85:27:85:27 | f | semmle.label | f |
|
||||
| local_dataflow.rb:86:33:86:33 | g | semmle.label | g |
|
||||
| local_dataflow.rb:87:25:87:25 | x | semmle.label | x |
|
||||
| local_dataflow.rb:89:8:89:8 | z | semmle.label | z |
|
||||
subpaths
|
||||
#select
|
||||
| local_dataflow.rb:79:23:79:23 | b | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:79:23:79:23 | b | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:80:27:80:27 | a | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:80:27:80:27 | a | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:82:11:82:11 | c | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:82:11:82:11 | c | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:83:11:83:11 | d | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:83:11:83:11 | d | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:84:11:84:11 | e | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:84:11:84:11 | e | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:85:25:85:25 | f | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:85:25:85:25 | f | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:86:31:86:31 | g | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:86:31:86:31 | g | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:87:23:87:23 | x | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:87:23:87:23 | x | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:89:6:89:6 | z | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:89:6:89:6 | z | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:79:25:79:25 | b | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:79:25:79:25 | b | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:80:29:80:29 | a | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:80:29:80:29 | a | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:82:12:82:12 | c | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:82:12:82:12 | c | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:83:12:83:12 | d | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:83:12:83:12 | d | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:84:12:84:12 | e | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:84:12:84:12 | e | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:85:27:85:27 | f | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:85:27:85:27 | f | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:86:33:86:33 | g | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:86:33:86:33 | g | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:87:25:87:25 | x | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:87:25:87:25 | x | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
| local_dataflow.rb:89:8:89:8 | z | local_dataflow.rb:78:12:78:20 | call to source : | local_dataflow.rb:89:8:89:8 | z | $@ | local_dataflow.rb:78:12:78:20 | call to source : | call to source : |
|
||||
|
||||
@@ -76,16 +76,16 @@ def test_case x
|
||||
end
|
||||
|
||||
z = case source(1)
|
||||
in 5 => b then sink(b) # $ hasTaintFlow=1
|
||||
in a if a > 0 then sink(a) # $ hasTaintFlow=1
|
||||
in [c, *d, e ] then [
|
||||
sink(c), # $ hasTaintFlow=1
|
||||
sink(d), # $ hasTaintFlow=1
|
||||
sink(e)] # $ hasTaintFlow=1
|
||||
in { a: f } then sink(f) # $ hasTaintFlow=1
|
||||
in { foo: 1, g: } then sink(g) # $ hasTaintFlow=1
|
||||
in { x: } then sink(x); x # $ hasTaintFlow=1
|
||||
end
|
||||
sink(z) # $ hasTaintFlow=1
|
||||
in 5 => b then sink(b) # $ hasTaintFlow=1
|
||||
in a if a > 0 then sink(a) # $ hasTaintFlow=1
|
||||
in [c, *d, e ] then [
|
||||
sink(c), # $ hasTaintFlow=1
|
||||
sink(d), # $ hasTaintFlow=1
|
||||
sink(e)] # $ hasTaintFlow=1
|
||||
in { a: f } then sink(f) # $ hasTaintFlow=1
|
||||
in { foo: 1, g: } then sink(g) # $ hasTaintFlow=1
|
||||
in { x: } then sink(x); x # $ hasTaintFlow=1
|
||||
end
|
||||
sink(z) # $ hasTaintFlow=1
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user