Files
openide/jvm/jvm-analysis-java-tests/testData/codeInspection/sourceToSinkFlow/IfStatementNonConstantMethod.java
Mikhail Pyltsin 6e7179de29 [uast-inspection] IDEA-349978 Inspection "Non-safe string is passed to safe method" loses track of String after IF
- process all branches if it is impossible to predict

GitOrigin-RevId: a3b0ada8753fb00c98eb02de14fc02e9fc15452c
2024-04-03 20:02:49 +00:00

44 lines
956 B
Java

import org.checkerframework.checker.tainting.qual.Untainted;
class IfStatement {
public void test1(String a) {
sink(<warning descr="Unknown string is used as safe parameter">a</warning>); //warn
}
public void test2(String a) {
String bar;
bar = doSomething1(a);
sink(<warning descr="Unknown string is used as safe parameter">bar</warning>);
}
public void test3(String a) {
String bar;
bar = doSomething2(a);
sink(<warning descr="Unknown string is used as safe parameter">bar</warning>);
}
private static String doSomething1(String param) {
int num = 106;
if ((7 * 18) + num > param.hashCode()) {
return "This_should_always_happen";
}
return param;
}
private static String doSomething2(String param) {
int num = 106;
if ((7 * 18) + num > 500) {
return "This_should_always_happen";
}
return param;
}
public static void sink(@Untainted String t) {
}
}