Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2965e78

Browse files
tamasvajkigfoo
authored andcommitted
Add local dataflow test for string templates
1 parent 6bd6097 commit 2965e78

3 files changed

Lines changed: 30 additions & 0 deletions

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class StringTemplateTests {
2+
fun taint() = "tainted"
3+
4+
fun sink(s: String) { }
5+
6+
fun bad() {
7+
val s0 = taint()
8+
val s1 = "test $s0"
9+
sink(s1)
10+
}
11+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
| StringTemplate.kt:7:14:7:20 | taint(...) | StringTemplate.kt:9:10:9:11 | s1 |
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import java
2+
import semmle.code.java.dataflow.TaintTracking
3+
4+
class Conf extends TaintTracking::Configuration {
5+
Conf() { this = "kttaintconf" }
6+
7+
override predicate isSource(DataFlow::Node n) {
8+
n.asExpr().(MethodAccess).getMethod().hasName("taint")
9+
}
10+
11+
override predicate isSink(DataFlow::Node n) {
12+
n.asExpr().(Argument).getCall().getCallee().hasName("sink")
13+
}
14+
}
15+
16+
from DataFlow::Node src, DataFlow::Node sink, Conf conf
17+
where conf.hasFlow(src, sink)
18+
select src, sink

0 commit comments

Comments
 (0)