mirror of
https://github.com/github/codeql.git
synced 2026-05-04 21:25:44 +02:00
Merge pull request #7878 from asgerf/dot-separated-access-paths
Shared: Switch to dot-separated access paths in summary specs
This commit is contained in:
@@ -28,6 +28,9 @@ taintFlow
|
||||
| test.js:76:31:76:38 | source() | test.js:76:31:76:38 | source() |
|
||||
| test.js:77:34:77:41 | source() | test.js:77:34:77:41 | source() |
|
||||
| test.js:81:28:81:35 | source() | test.js:81:28:81:35 | source() |
|
||||
| test.js:87:17:87:24 | source() | test.js:87:17:87:24 | source() |
|
||||
| test.js:88:17:88:24 | source() | test.js:88:17:88:24 | source() |
|
||||
| test.js:89:17:89:24 | source() | test.js:89:17:89:24 | source() |
|
||||
isSink
|
||||
| test.js:46:18:46:25 | source() | test-sink |
|
||||
| test.js:47:22:47:29 | source() | test-sink |
|
||||
@@ -71,3 +74,17 @@ isSink
|
||||
| test.js:78:34:78:34 | 3 | test-sink |
|
||||
| test.js:81:28:81:35 | source() | test-sink |
|
||||
| test.js:82:28:82:28 | 1 | test-sink |
|
||||
| test.js:87:17:87:24 | source() | test-sink |
|
||||
| test.js:88:17:88:24 | source() | test-sink |
|
||||
| test.js:89:17:89:24 | source() | test-sink |
|
||||
syntaxErrors
|
||||
| Member[foo |
|
||||
| Member[foo] .Member[bar] |
|
||||
| Member[foo] Member[bar] |
|
||||
| Member[foo], Member[bar] |
|
||||
| Member[foo],Member[bar] |
|
||||
| Member[foo]. Member[bar] |
|
||||
| Member[foo]..Member[bar] |
|
||||
| Member[foo]Member[bar] |
|
||||
| Member[foo]] |
|
||||
| Member[foo]].Member[bar] |
|
||||
|
||||
@@ -83,4 +83,9 @@ function testSinks() {
|
||||
testlib.mySinkIfArityTwo(source(), 2, 3); // OK
|
||||
testlib.mySinkIfArityTwo(1, source(), 3); // OK
|
||||
testlib.mySinkIfArityTwo(1, 2, source()); // OK
|
||||
|
||||
testlib.sink1(source()); // NOT OK
|
||||
testlib.sink2(source()); // NOT OK
|
||||
testlib.sink3(source()); // NOT OK
|
||||
testlib.sink4(source()); // OK
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import javascript
|
||||
import testUtilities.ConsistencyChecking
|
||||
import semmle.javascript.frameworks.data.internal.AccessPathSyntax as AccessPathSyntax
|
||||
|
||||
class Steps extends ModelInput::SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
@@ -29,6 +30,7 @@ class Sinks extends ModelInput::SinkModelCsv {
|
||||
"testlib;;Member[mySinkTwoLastRange].Argument[N-2..N-1];test-sink",
|
||||
"testlib;;Member[mySinkExceptLast].Argument[0..N-2];test-sink",
|
||||
"testlib;;Member[mySinkIfArityTwo].WithArity[2].Argument[0];test-sink",
|
||||
"testlib;;Member[sink1, sink2, sink3 ].Argument[0];test-sink",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -54,3 +56,20 @@ query predicate taintFlow(DataFlow::Node source, DataFlow::Node sink) {
|
||||
query predicate isSink(DataFlow::Node node, string kind) {
|
||||
node = ModelOutput::getASinkNode(kind).getARhs()
|
||||
}
|
||||
|
||||
class SyntaxErrorTest extends ModelInput::SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"testlib;;Member[foo],Member[bar];test-sink", "testlib;;Member[foo] Member[bar];test-sink",
|
||||
"testlib;;Member[foo]. Member[bar];test-sink",
|
||||
"testlib;;Member[foo], Member[bar];test-sink",
|
||||
"testlib;;Member[foo]..Member[bar];test-sink",
|
||||
"testlib;;Member[foo] .Member[bar];test-sink", "testlib;;Member[foo]Member[bar];test-sink",
|
||||
"testlib;;Member[foo;test-sink", "testlib;;Member[foo]];test-sink",
|
||||
"testlib;;Member[foo]].Member[bar];test-sink"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
query predicate syntaxErrors(AccessPathSyntax::AccessPath path) { path.hasSyntaxError() }
|
||||
|
||||
Reference in New Issue
Block a user