mirror of
https://github.com/github/codeql.git
synced 2026-05-25 00:27:09 +02:00
PS: Fix missing flow.
This commit is contained in:
@@ -528,6 +528,12 @@ predicate storeStep(Node node1, ContentSet c, Node node2) {
|
||||
or
|
||||
not exists(e.getValue().asInt())
|
||||
)
|
||||
or
|
||||
exists(Content::KnownElementContent ec, int index |
|
||||
node2.asExpr().(CfgNodes::ExprNodes::ArrayLiteralCfgNode).getElement(index) = node1.asExpr() and
|
||||
c.isKnownOrUnknownElement(ec) and
|
||||
index = ec.getIndex().asInt()
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -157,6 +157,12 @@ edges
|
||||
| test.ps1:31:6:31:22 | ...[...] [element 2] | test.ps1:31:6:31:33 | ...[...] | provenance | |
|
||||
| test.ps1:31:6:31:22 | ...[...] [element 3] | test.ps1:31:6:31:33 | ...[...] | provenance | |
|
||||
| test.ps1:31:6:31:22 | ...[...] [element 4] | test.ps1:31:6:31:33 | ...[...] | provenance | |
|
||||
| test.ps1:33:6:33:17 | Source | test.ps1:35:15:35:17 | x | provenance | |
|
||||
| test.ps1:35:9:35:17 | ...,... [element 2] | test.ps1:38:6:38:11 | arr8 [element 2] | provenance | |
|
||||
| test.ps1:35:9:35:17 | ...,... [element 2] | test.ps1:39:6:39:11 | arr8 [element 2] | provenance | |
|
||||
| test.ps1:35:15:35:17 | x | test.ps1:35:9:35:17 | ...,... [element 2] | provenance | |
|
||||
| test.ps1:38:6:38:11 | arr8 [element 2] | test.ps1:38:6:38:14 | ...[...] | provenance | |
|
||||
| test.ps1:39:6:39:11 | arr8 [element 2] | test.ps1:39:6:39:21 | ...[...] | provenance | |
|
||||
nodes
|
||||
| test.ps1:1:1:1:3 | [post] a [f] | semmle.label | [post] a [f] |
|
||||
| test.ps1:1:8:1:18 | Source | semmle.label | Source |
|
||||
@@ -287,6 +293,13 @@ nodes
|
||||
| test.ps1:31:6:31:22 | ...[...] [element 3] | semmle.label | ...[...] [element 3] |
|
||||
| test.ps1:31:6:31:22 | ...[...] [element 4] | semmle.label | ...[...] [element 4] |
|
||||
| test.ps1:31:6:31:33 | ...[...] | semmle.label | ...[...] |
|
||||
| test.ps1:33:6:33:17 | Source | semmle.label | Source |
|
||||
| test.ps1:35:9:35:17 | ...,... [element 2] | semmle.label | ...,... [element 2] |
|
||||
| test.ps1:35:15:35:17 | x | semmle.label | x |
|
||||
| test.ps1:38:6:38:11 | arr8 [element 2] | semmle.label | arr8 [element 2] |
|
||||
| test.ps1:38:6:38:14 | ...[...] | semmle.label | ...[...] |
|
||||
| test.ps1:39:6:39:11 | arr8 [element 2] | semmle.label | arr8 [element 2] |
|
||||
| test.ps1:39:6:39:21 | ...[...] | semmle.label | ...[...] |
|
||||
subpaths
|
||||
testFailures
|
||||
#select
|
||||
@@ -299,3 +312,5 @@ testFailures
|
||||
| test.ps1:26:6:26:25 | ...[...] | test.ps1:25:23:25:33 | Source | test.ps1:26:6:26:25 | ...[...] | $@ | test.ps1:25:23:25:33 | Source | Source |
|
||||
| test.ps1:30:6:30:17 | ...[...] | test.ps1:29:31:29:41 | Source | test.ps1:30:6:30:17 | ...[...] | $@ | test.ps1:29:31:29:41 | Source | Source |
|
||||
| test.ps1:31:6:31:33 | ...[...] | test.ps1:29:31:29:41 | Source | test.ps1:31:6:31:33 | ...[...] | $@ | test.ps1:29:31:29:41 | Source | Source |
|
||||
| test.ps1:38:6:38:14 | ...[...] | test.ps1:33:6:33:17 | Source | test.ps1:38:6:38:14 | ...[...] | $@ | test.ps1:33:6:33:17 | Source | Source |
|
||||
| test.ps1:39:6:39:21 | ...[...] | test.ps1:33:6:33:17 | Source | test.ps1:39:6:39:21 | ...[...] | $@ | test.ps1:33:6:33:17 | Source | Source |
|
||||
|
||||
@@ -35,8 +35,8 @@ $x = Source "10"
|
||||
$arr8 = 0, 1, $x
|
||||
Sink $arr8[0] # clean
|
||||
Sink $arr8[1] # clean
|
||||
Sink $arr8[2] # $ MISSING: hasValueFlow=10
|
||||
Sink $arr8[$unknown] # MISSING: hasValueFlow=10
|
||||
Sink $arr8[2] # $ hasValueFlow=10
|
||||
Sink $arr8[$unknown] # $ hasValueFlow=10
|
||||
|
||||
$y = Source "11"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user