File tree Expand file tree Collapse file tree
java/ql/test/kotlin/library-tests/dataflow/whenexpr Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ class WhenExpr {
2+ fun taint () = Uri ()
3+
4+ fun sink (s : String ) { }
5+
6+ fun bad () {
7+ val s0 = taint()
8+ sink(s0?.getQueryParameter())
9+ }
10+ }
11+
12+ class Uri {
13+ fun getQueryParameter () = " tainted"
14+ }
Original file line number Diff line number Diff line change 1+ | NotNullExpr.kt:7:14:7:20 | taint(...) | NotNullExpr.kt:8:15:8:33 | getQueryParameter(...) |
Original file line number Diff line number Diff line change 1+ import java
2+ import semmle.code.java.dataflow.TaintTracking
3+ import semmle.code.java.dataflow.ExternalFlow
4+
5+ class Step extends SummaryModelCsv {
6+ override predicate row ( string row ) {
7+ row = ";Uri;false;getQueryParameter;;;Argument[-1];ReturnValue;taint"
8+ }
9+ }
10+
11+ class Conf extends TaintTracking:: Configuration {
12+ Conf ( ) { this = "qltest:notNullExprFlow" }
13+
14+ override predicate isSource ( DataFlow:: Node n ) {
15+ n .asExpr ( ) .( MethodAccess ) .getMethod ( ) .hasName ( "taint" )
16+ }
17+
18+ override predicate isSink ( DataFlow:: Node n ) {
19+ n .asExpr ( ) .( Argument ) .getCall ( ) .getCallee ( ) .hasName ( "sink" )
20+ }
21+ }
22+
23+ from DataFlow:: Node src , DataFlow:: Node sink , Conf conf
24+ where conf .hasFlow ( src , sink )
25+ select src , sink
You can’t perform that action at this time.
0 commit comments