File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed
swift/ql/test/library-tests/dataflow/taint Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change 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 |
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments