mirror of
https://github.com/github/codeql.git
synced 2026-04-29 02:35:15 +02:00
Java: Add more field-flow tests
This commit is contained in:
38
java/ql/test/library-tests/dataflow/fields/F.java
Normal file
38
java/ql/test/library-tests/dataflow/fields/F.java
Normal file
@@ -0,0 +1,38 @@
|
||||
public class F {
|
||||
Object Field1;
|
||||
Object Field2;
|
||||
public F() {
|
||||
Field1 = new Object();
|
||||
Field2 = new Object();
|
||||
}
|
||||
|
||||
private void m() {
|
||||
Object o = new Object();
|
||||
F f = new F();
|
||||
f.Field1 = o;
|
||||
f.Field2 = o;
|
||||
f.Field2 = null;
|
||||
sink(f.Field1); // flow
|
||||
sink(f.Field2); // no flow [FALSE POSITIVE]
|
||||
|
||||
f = new F();
|
||||
f.Field2 = null;
|
||||
sink(f.Field1); // flow
|
||||
sink(f.Field2); // no flow [FALSE POSITIVE]
|
||||
|
||||
f = new F();
|
||||
o = new Object();
|
||||
f.Field1 = o;
|
||||
f.Field2 = o;
|
||||
m2(f);
|
||||
}
|
||||
|
||||
private void m2(F f)
|
||||
{
|
||||
f.Field2 = null;
|
||||
sink(f.Field1); // flow
|
||||
sink(f.Field2); // no flow [FALSE POSITIVE]
|
||||
}
|
||||
|
||||
public static void sink(Object o) { }
|
||||
}
|
||||
@@ -26,3 +26,13 @@
|
||||
| E.java:2:32:2:43 | new Object(...) | E.java:21:10:21:24 | bh2.buf.content |
|
||||
| E.java:2:32:2:43 | new Object(...) | E.java:24:10:24:28 | p2.data.buf.content |
|
||||
| E.java:2:32:2:43 | new Object(...) | E.java:30:10:30:27 | p.data.buf.content |
|
||||
| F.java:5:14:5:25 | new Object(...) | F.java:15:10:15:17 | f.Field1 |
|
||||
| F.java:5:14:5:25 | new Object(...) | F.java:20:10:20:17 | f.Field1 |
|
||||
| F.java:5:14:5:25 | new Object(...) | F.java:33:10:33:17 | f.Field1 |
|
||||
| F.java:6:14:6:25 | new Object(...) | F.java:16:10:16:17 | f.Field2 |
|
||||
| F.java:6:14:6:25 | new Object(...) | F.java:21:10:21:17 | f.Field2 |
|
||||
| F.java:6:14:6:25 | new Object(...) | F.java:34:10:34:17 | f.Field2 |
|
||||
| F.java:10:16:10:27 | new Object(...) | F.java:15:10:15:17 | f.Field1 |
|
||||
| F.java:10:16:10:27 | new Object(...) | F.java:16:10:16:17 | f.Field2 |
|
||||
| F.java:24:9:24:20 | new Object(...) | F.java:33:10:33:17 | f.Field1 |
|
||||
| F.java:24:9:24:20 | new Object(...) | F.java:34:10:34:17 | f.Field2 |
|
||||
|
||||
Reference in New Issue
Block a user