Files
2023-11-30 11:24:00 +00:00

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) { }