mirror of
https://github.com/github/codeql.git
synced 2025-12-17 09:13:20 +01:00
29 lines
684 B
Java
29 lines
684 B
Java
public class Test {
|
|
|
|
public static void test(boolean inp) {
|
|
|
|
String directTaint = source();
|
|
String indirectTaint = source();
|
|
|
|
Object o = inp ? directTaint : new Outer(new Inner(indirectTaint, "not tainted"), "not tainted 2");
|
|
|
|
if (o instanceof String s) {
|
|
sink(s);
|
|
}
|
|
|
|
if (o instanceof Outer(Inner(String tainted, String notTainted), String alsoNotTainted)) {
|
|
sink(tainted);
|
|
sink(notTainted);
|
|
sink(alsoNotTainted);
|
|
}
|
|
|
|
}
|
|
|
|
public static String source() { return "tainted"; }
|
|
public static void sink(String sunk) { }
|
|
|
|
}
|
|
|
|
record Outer(Inner i, String otherField) { }
|
|
record Inner(String taintedField, String nonTaintedField) { }
|