@@ -4,18 +4,18 @@ func sink(arg: String) {}
44func taintThroughInterpolatedStrings( ) {
55 var x = source ( )
66
7- sink ( arg: " \( x) " ) // tainted
7+ sink ( arg: " \( x) " ) // $ tainted=5
88
9- sink ( arg: " \( x) \( x) " ) // tainted
9+ sink ( arg: " \( x) \( x) " ) // $ tainted=5
1010
11- sink ( arg: " \( x) \( 0 ) \( x) " ) // tainted
11+ sink ( arg: " \( x) \( 0 ) \( x) " ) // $ tainted=5
1212
1313 var y = 42
1414 sink ( arg: " \( y) " ) // clean
1515
16- sink ( arg: " \( x) hello \( y) " ) // tainted
16+ sink ( arg: " \( x) hello \( y) " ) // $ tainted=5
1717
18- sink ( arg: " \( y) world \( x) " ) // tainted
18+ sink ( arg: " \( y) world \( x) " ) // $ tainted=5
1919
2020 x = 0
2121 sink ( arg: " \( x) " ) // clean
@@ -28,15 +28,15 @@ func taintThroughStringConcatenation() {
2828 var tainted = source2 ( )
2929
3030 sink ( arg: clean)
31- sink ( arg: tainted) // tainted
31+ sink ( arg: tainted) // $ tainted=28
3232
3333 sink ( arg: clean + clean)
34- sink ( arg: clean + tainted) // tainted
35- sink ( arg: tainted + clean) // tainted
36- sink ( arg: tainted + tainted) // tainted
34+ sink ( arg: clean + tainted) // $ tainted=28
35+ sink ( arg: tainted + clean) // $ tainted=28
36+ sink ( arg: tainted + tainted) // $ tainted=28
3737
3838 sink ( arg: " > " + clean + " < " )
39- sink ( arg: " > " + tainted + " < " ) // tainted
39+ sink ( arg: " > " + tainted + " < " ) // $ tainted=28
4040
4141 var str = " abc "
4242
@@ -46,7 +46,7 @@ func taintThroughStringConcatenation() {
4646 sink ( arg: str)
4747
4848 str += source2 ( )
49- sink ( arg: str) // tainted [NOT DETECTED]
49+ sink ( arg: str) // $ MISSING: tainted=48
5050
5151 var str2 = " abc "
5252
@@ -56,7 +56,7 @@ func taintThroughStringConcatenation() {
5656 sink ( arg: str2)
5757
5858 str2. append ( source2 ( ) )
59- sink ( arg: str2) // tainted [NOT DETECTED]
59+ sink ( arg: str2) // $ MISSING: tainted=58
6060
6161 var str3 = " abc "
6262
@@ -66,7 +66,7 @@ func taintThroughStringConcatenation() {
6666 sink ( arg: str3)
6767
6868 str3. append ( contentsOf: source2 ( ) )
69- sink ( arg: str2) // tainted [NOT DETECTED]
69+ sink ( arg: str2) // $ MISSING: tainted=68
7070}
7171
7272func taintThroughStringOperations( ) {
@@ -75,15 +75,15 @@ func taintThroughStringOperations() {
7575 var taintedInt = source ( )
7676
7777 sink ( arg: String ( clean) )
78- sink ( arg: String ( tainted) ) // tainted [NOT DETECTED]
79- sink ( arg: String ( taintedInt) ) // tainted [NOT DETECTED]
78+ sink ( arg: String ( tainted) ) // $ MISSING: tainted=74
79+ sink ( arg: String ( taintedInt) ) // $ MISSING: tainted=75
8080
8181 sink ( arg: String ( repeating: clean, count: 2 ) )
82- sink ( arg: String ( repeating: tainted, count: 2 ) ) // tainted [NOT DETECTED]
82+ sink ( arg: String ( repeating: tainted, count: 2 ) ) // $ MISSING: tainted=74
8383
8484 sink ( arg: clean. description)
85- sink ( arg: tainted. description) // tainted [NOT DETECTED]
85+ sink ( arg: tainted. description) // $ MISSING: tainted=74
8686
8787 sink ( arg: clean. debugDescription)
88- sink ( arg: tainted. debugDescription) // tainted [NOT DETECTED]
88+ sink ( arg: tainted. debugDescription) // $ MISSING: tainted=74
8989}
0 commit comments