mirror of
https://github.com/github/codeql.git
synced 2026-05-05 13:45:19 +02:00
Merge commit '2fa9037' into yo-h/java15-merge
This commit is contained in:
@@ -20,6 +20,11 @@ public class A {
|
||||
|
||||
void f3(Box b) {
|
||||
Box other = new Box();
|
||||
addElem(other);
|
||||
sink(other.elem);
|
||||
}
|
||||
|
||||
void addElem(Box b) {
|
||||
b.elem = new Object();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,17 @@
|
||||
edges
|
||||
| A.java:4:16:4:18 | this <constr(this)> [post update] [elem] | A.java:22:17:22:25 | new Box(...) [elem] |
|
||||
| A.java:12:5:12:5 | b [post update] [elem] | A.java:13:12:13:12 | b [elem] |
|
||||
| A.java:12:14:12:18 | src(...) : Object | A.java:12:5:12:5 | b [post update] [elem] |
|
||||
| A.java:12:14:12:18 | src(...) : Object | A.java:12:5:12:18 | ...=... : Object |
|
||||
| A.java:13:12:13:12 | b [elem] | A.java:17:13:17:16 | f1(...) [elem] |
|
||||
| A.java:17:13:17:16 | f1(...) [elem] | A.java:18:8:18:8 | b [elem] |
|
||||
| A.java:18:8:18:8 | b [elem] | A.java:21:11:21:15 | b [elem] |
|
||||
| A.java:22:17:22:25 | new Box(...) [elem] | A.java:23:13:23:17 | other [elem] |
|
||||
| A.java:23:13:23:17 | other [elem] | A.java:24:10:24:14 | other [elem] |
|
||||
| A.java:23:13:23:17 | other [post update] [elem] | A.java:24:10:24:14 | other [elem] |
|
||||
| A.java:24:10:24:14 | other [elem] | A.java:24:10:24:19 | other.elem |
|
||||
| A.java:28:5:28:5 | b [post update] [elem] | A.java:23:13:23:17 | other [post update] [elem] |
|
||||
| A.java:28:14:28:25 | new Object(...) | A.java:28:5:28:5 | b [post update] [elem] |
|
||||
#select
|
||||
| 0 | A.java:12:5:12:5 | b [post update] [elem] |
|
||||
| 0 | A.java:12:5:12:18 | ...=... : Object |
|
||||
|
||||
22
java/ql/test/library-tests/dataflow/partial/testRev.expected
Normal file
22
java/ql/test/library-tests/dataflow/partial/testRev.expected
Normal file
@@ -0,0 +1,22 @@
|
||||
edges
|
||||
| A.java:4:16:4:18 | this <constr(this)> [post update] [elem] | A.java:22:17:22:25 | new Box(...) [elem] |
|
||||
| A.java:12:5:12:5 | b [post update] [elem] | A.java:13:12:13:12 | b [elem] |
|
||||
| A.java:12:14:12:18 | src(...) : Object | A.java:12:5:12:5 | b [post update] [elem] |
|
||||
| A.java:12:14:12:18 | src(...) : Object | A.java:12:5:12:18 | ...=... : Object |
|
||||
| A.java:13:12:13:12 | b [elem] | A.java:17:13:17:16 | f1(...) [elem] |
|
||||
| A.java:17:13:17:16 | f1(...) [elem] | A.java:18:8:18:8 | b [elem] |
|
||||
| A.java:18:8:18:8 | b [elem] | A.java:21:11:21:15 | b [elem] |
|
||||
| A.java:22:17:22:25 | new Box(...) [elem] | A.java:23:13:23:17 | other [elem] |
|
||||
| A.java:23:13:23:17 | other [elem] | A.java:24:10:24:14 | other [elem] |
|
||||
| A.java:23:13:23:17 | other [post update] [elem] | A.java:24:10:24:14 | other [elem] |
|
||||
| A.java:24:10:24:14 | other [elem] | A.java:24:10:24:19 | other.elem |
|
||||
| A.java:28:5:28:5 | b [post update] [elem] | A.java:23:13:23:17 | other [post update] [elem] |
|
||||
| A.java:28:14:28:25 | new Object(...) | A.java:28:5:28:5 | b [post update] [elem] |
|
||||
#select
|
||||
| 0 | A.java:22:17:22:25 | new Box(...) [elem] |
|
||||
| 0 | A.java:23:13:23:17 | other [elem] |
|
||||
| 0 | A.java:23:13:23:17 | other [post update] [elem] |
|
||||
| 0 | A.java:24:10:24:14 | other [elem] |
|
||||
| 1 | A.java:4:16:4:18 | this <constr(this)> [post update] [elem] |
|
||||
| 1 | A.java:28:5:28:5 | b [post update] [elem] |
|
||||
| 1 | A.java:28:14:28:25 | new Object(...) |
|
||||
18
java/ql/test/library-tests/dataflow/partial/testRev.ql
Normal file
18
java/ql/test/library-tests/dataflow/partial/testRev.ql
Normal file
@@ -0,0 +1,18 @@
|
||||
import java
|
||||
import semmle.code.java.dataflow.DataFlow
|
||||
import DataFlow
|
||||
import PartialPathGraph
|
||||
|
||||
class Conf extends Configuration {
|
||||
Conf() { this = "partial flow" }
|
||||
|
||||
override predicate isSource(Node n) { n.asExpr().(MethodAccess).getMethod().hasName("src") }
|
||||
|
||||
override predicate isSink(Node n) { n.asExpr().(Argument).getCall().getCallee().hasName("sink") }
|
||||
|
||||
override int explorationLimit() { result = 10 }
|
||||
}
|
||||
|
||||
from PartialPathNode n, int dist
|
||||
where any(Conf c).hasPartialFlowRev(n, _, dist)
|
||||
select dist, n
|
||||
Reference in New Issue
Block a user