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