11
22// --- stubs ---
33
4- func sourceString ( ) -> String { return " " }
5- func sourceUInt8 ( ) -> UInt8 { return 0 }
4+ func sourceString ( _ label : String ) -> String { return " " }
5+ func sourceUInt8 ( _ label : String ) -> UInt8 { return 0 }
66func sink ( arg : Any ) { }
77
88// --- tests ---
@@ -18,14 +18,14 @@ func taintPointer(ptr: UnsafeMutablePointer<String>) {
1818 sink ( arg : ptr . pointee )
1919 sink ( arg : ptr )
2020
21- ptr . pointee = sourceString ( )
21+ ptr . pointee = sourceString ( " taintPointer " )
2222
23- sink ( arg : ptr . pointee ) // $ tainted=21
23+ sink ( arg : ptr . pointee ) // $ tainted=taintPointer
2424 sink ( arg : ptr )
2525}
2626
2727func clearPointer2 ( ptr : UnsafeMutablePointer < String > ) {
28- sink ( arg : ptr . pointee ) // $ tainted=21
28+ sink ( arg : ptr . pointee ) // $ tainted=taintPointer
2929 sink ( arg : ptr )
3030
3131 ptr . pointee = " abc "
@@ -42,12 +42,12 @@ func testMutatingPointerInCall(ptr: UnsafeMutablePointer<String>) {
4242
4343 taintPointer ( ptr : ptr ) // mutates `ptr` pointee with a tainted value
4444
45- sink ( arg : ptr . pointee ) // $ tainted=21
45+ sink ( arg : ptr . pointee ) // $ tainted=taintPointer
4646 sink ( arg : ptr )
4747
4848 clearPointer2 ( ptr : ptr )
4949
50- sink ( arg : ptr . pointee ) // $ SPURIOUS: tainted=21
50+ sink ( arg : ptr . pointee ) // $ SPURIOUS: tainted=taintPointer
5151 sink ( arg : ptr )
5252}
5353
@@ -57,10 +57,10 @@ func taintBuffer(buffer: UnsafeMutableBufferPointer<UInt8>) {
5757 sink ( arg : buffer [ 0 ] )
5858 sink ( arg : buffer )
5959
60- buffer [ 0 ] = sourceUInt8 ( )
60+ buffer [ 0 ] = sourceUInt8 ( " taintBuffer " )
6161
62- sink ( arg : buffer [ 0 ] ) // $ tainted=60
63- sink ( arg : buffer ) // $ tainted=60
62+ sink ( arg : buffer [ 0 ] ) // $ tainted=taintBuffer
63+ sink ( arg : buffer ) // $ tainted=taintBuffer
6464}
6565
6666func testMutatingBufferInCall ( ptr : UnsafeMutablePointer < UInt8 > ) {
@@ -71,8 +71,8 @@ func testMutatingBufferInCall(ptr: UnsafeMutablePointer<UInt8>) {
7171
7272 taintBuffer ( buffer : buffer ) // mutates `buffer` contents with a tainted value
7373
74- sink ( arg : buffer [ 0 ] ) // $ tainted=60
75- sink ( arg : buffer ) // $ tainted=60
74+ sink ( arg : buffer [ 0 ] ) // $ tainted=taintBuffer
75+ sink ( arg : buffer ) // $ tainted=taintBuffer
7676
7777}
7878
@@ -84,9 +84,9 @@ func taintMyPointer(ptr: MyPointer) {
8484 sink ( arg : ptr . pointee )
8585 sink ( arg : ptr )
8686
87- ptr . pointee = sourceString ( )
87+ ptr . pointee = sourceString ( " taintMyPointer " )
8888
89- sink ( arg : ptr . pointee ) // $ tainted=87
89+ sink ( arg : ptr . pointee ) // $ tainted=taintMyPointer
9090 sink ( arg : ptr )
9191}
9292
@@ -96,7 +96,7 @@ func testMutatingMyPointerInCall(ptr: MyPointer) {
9696
9797 taintMyPointer ( ptr : ptr ) // mutates `ptr` pointee with a tainted value
9898
99- sink ( arg : ptr . pointee ) // $ MISSING: tainted=87
99+ sink ( arg : ptr . pointee ) // $ MISSING: tainted=taintMyPointer
100100 sink ( arg : ptr )
101101}
102102
@@ -111,19 +111,19 @@ struct MyGenericPointerContainer<T> {
111111}
112112
113113func writePointerContainer ( mpc : MyPointerContainer ) {
114- mpc . ptr . pointee = sourceString ( )
115- sink ( arg : mpc . ptr . pointee ) // $ tainted=114
114+ mpc . ptr . pointee = sourceString ( " writePointerContainer " )
115+ sink ( arg : mpc . ptr . pointee ) // $ tainted=writePointerContainer
116116}
117117
118118func writeGenericPointerContainer < T > ( mgpc : MyGenericPointerContainer < T > ) {
119- mgpc . ptr . pointee = sourceString ( ) as! T
120- sink ( arg : mgpc . ptr . pointee ) // $ tainted=119
119+ mgpc . ptr . pointee = sourceString ( " writeGenericPointerContainer " ) as! T
120+ sink ( arg : mgpc . ptr . pointee ) // $ tainted=writeGenericPointerContainer
121121}
122122
123123func testWritingPointerContainersInCalls ( mpc : MyPointerContainer , mgpc : MyGenericPointerContainer < Int > ) {
124124 writePointerContainer ( mpc : mpc )
125- sink ( arg : mpc . ptr . pointee ) // $ tainted=114
125+ sink ( arg : mpc . ptr . pointee ) // $ tainted=writePointerContainer
126126
127127 writeGenericPointerContainer ( mgpc : mgpc )
128- sink ( arg : mgpc . ptr . pointee ) // $ tainted=119
128+ sink ( arg : mgpc . ptr . pointee ) // $ tainted=writeGenericPointerContainer
129129}
0 commit comments