import org.checkerframework.checker.tainting.qual.Untainted;
import java.util.ArrayList;
import java.util.List;
class SinkTest {
public void test(String string) {
sink(string); //warn
}
@Untainted
public String returnDirty(String dirty) {
return dirty; //warn
}
void sink(@Untainted String clear) {
}
void assignDirty(@Untainted String clear, String dirty) {
clear = dirty; //warn
}
@Untainted String dirty = getFromStatic(); //warn
static List list = new ArrayList<>();
private static String getFromStatic() {
return list.get(0);
}
@Untainted
static String clear = "";
static void spoil(String dirty) {
clear = dirty; //warn
}
static void testLocal(String dirty) {
@Untainted String clean = dirty; //warn
}
static void testLocal2(String dirty) {
@Untainted String clean = "";
clean = dirty; //warn
}
}