File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
swift/ql/test/library-tests/dataflow/taint/libraries Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+
2+ // --- stubs ---
3+
4+ // --- tests ---
5+
6+ func source( _ label: String ) -> Int { return 0 }
7+ func sink( arg: Any ) { }
8+
9+ // ---
10+
11+ func testArray( ) {
12+ let arrClean = Array < Int > ( )
13+
14+ var arr1 = Array < Int > ( )
15+ arr1. append ( 1 )
16+ sink ( arg: arr1 [ arr1. endIndex - 1 ] )
17+ arr1. append ( source ( " int1 " ) )
18+ sink ( arg: arr1 [ arr1. endIndex - 1 ] ) // $ tainted=int1
19+
20+ var arr2 = Array < Int > ( )
21+ arr2. append ( contentsOf: arrClean)
22+ sink ( arg: arr2 [ arr2. endIndex - 1 ] )
23+ arr2. append ( contentsOf: arr1)
24+ sink ( arg: arr2 [ arr2. endIndex - 1 ] ) // $ tainted=int1
25+
26+ var arr3 = Array < Int > ( )
27+ arr3. insert ( 1 , at: 0 )
28+ sink ( arg: arr3 [ 0 ] )
29+ arr3. insert ( source ( " int3 " ) , at: 0 )
30+ sink ( arg: arr3 [ 0 ] ) // $ tainted=int3
31+
32+ var arr4 = Array < Int > ( )
33+ arr4. insert ( contentsOf: arrClean, at: 0 )
34+ sink ( arg: arr4 [ 0 ] )
35+ arr4. insert ( contentsOf: arr3, at: 0 )
36+ sink ( arg: arr4 [ 0 ] ) // $ MISSING: tainted=int3
37+
38+ var arr5 = Array < Int > ( )
39+ arr5. insert ( contentsOf: 1 ... 10 , at: 0 )
40+ sink ( arg: arr5 [ arr5. endIndex - 1 ] )
41+ arr5. insert ( contentsOf: 1 ... source ( " int5 " ) , at: 0 )
42+ sink ( arg: arr5 [ arr5. endIndex - 1 ] ) // $ MISSING: tainted=int5
43+ }
You can’t perform that action at this time.
0 commit comments