Skip to content

Commit 3bda9af

Browse files
committed
Swift: Add taint test of Data.
1 parent 42c3e29 commit 3bda9af

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

swift/ql/test/library-tests/dataflow/taint/LocalTaint.expected

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
| data.swift:12:6:12:6 | WriteDef | data.swift:16:12:16:12 | dataClean |
2+
| data.swift:12:18:12:36 | call to ... | data.swift:12:6:12:6 | WriteDef |
3+
| data.swift:13:6:13:6 | WriteDef | data.swift:14:26:14:26 | dataTainted |
4+
| data.swift:13:20:13:38 | call to ... | data.swift:13:6:13:6 | WriteDef |
5+
| data.swift:14:6:14:6 | WriteDef | data.swift:18:12:18:12 | dataTainted2 |
6+
| data.swift:14:21:14:37 | call to ... | data.swift:14:6:14:6 | WriteDef |
7+
| data.swift:14:26:14:26 | dataTainted | data.swift:17:12:17:12 | dataTainted |
8+
| data.swift:16:12:16:12 | dataClean | data.swift:20:33:20:33 | dataClean |
19
| file://:0:0:0:0 | Phi | string.swift:7:14:7:14 | $interpolation |
210
| file://:0:0:0:0 | Phi | string.swift:9:14:9:14 | $interpolation |
311
| file://:0:0:0:0 | Phi | string.swift:11:14:11:14 | $interpolation |
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
class Data
3+
{
4+
init<S>(_ elements: S) {}
5+
}
6+
7+
func source() -> String { return "" }
8+
func sink(arg: Data) {}
9+
func sink2(arg: String) {}
10+
11+
func taintThroughData() {
12+
let dataClean = Data("123456".utf8)
13+
let dataTainted = Data(source().utf8)
14+
let dataTainted2 = Data(dataTainted)
15+
16+
sink(arg: dataClean)
17+
sink(arg: dataTainted) // tainted [NOT DETECTED]
18+
sink(arg: dataTainted2) // tainted [NOT DETECTED]
19+
20+
let stringClean = String(data: dataClean, encoding: String.Encoding.utf8)
21+
let stringTainted = String(data: dataTainted, encoding: String.Encoding.utf8)
22+
23+
sink2(arg: stringClean!) // tainted [NOT DETECTED]
24+
sink2(arg: stringTainted!) // tainted [NOT DETECTED]
25+
}

0 commit comments

Comments
 (0)