Skip to content

Commit 33f83a2

Browse files
committed
Swift: Add some failing data flow test cases.
1 parent 59c43c7 commit 33f83a2

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,40 @@
354354
| simple.swift:85:13:85:20 | call to source() | simple.swift:85:13:85:26 | ... .&>>(_:_:) ... |
355355
| simple.swift:85:26:85:26 | 1 | simple.swift:85:13:85:26 | ... .&>>(_:_:) ... |
356356
| simple.swift:87:14:87:21 | call to source() | simple.swift:87:13:87:21 | call to ~(_:) |
357+
| simple.swift:97:7:97:7 | SSA def(self) | simple.swift:97:7:97:7 | self[return] |
358+
| simple.swift:97:7:97:7 | SSA def(self) | simple.swift:97:7:97:7 | self[return] |
359+
| simple.swift:97:7:97:7 | self | simple.swift:97:7:97:7 | SSA def(self) |
360+
| simple.swift:97:7:97:7 | self | simple.swift:97:7:97:7 | SSA def(self) |
361+
| simple.swift:98:6:98:6 | self | simple.swift:98:6:98:6 | SSA def(self) |
362+
| simple.swift:99:6:99:6 | self | simple.swift:99:6:99:6 | SSA def(self) |
363+
| simple.swift:100:7:100:7 | self | simple.swift:100:7:100:7 | SSA def(self) |
364+
| simple.swift:101:6:101:6 | self | simple.swift:101:6:101:6 | SSA def(self) |
365+
| simple.swift:101:6:101:6 | self | simple.swift:101:6:101:6 | SSA def(self) |
366+
| simple.swift:101:6:101:6 | self | simple.swift:101:6:101:6 | SSA def(self) |
367+
| simple.swift:101:6:101:6 | value | simple.swift:101:6:101:6 | SSA def(value) |
368+
| simple.swift:103:13:103:13 | self | simple.swift:103:13:103:13 | SSA def(self) |
369+
| simple.swift:104:13:104:13 | self | simple.swift:104:13:104:13 | SSA def(self) |
370+
| simple.swift:105:14:105:14 | self | simple.swift:105:14:105:14 | SSA def(self) |
371+
| simple.swift:106:13:106:13 | self | simple.swift:106:13:106:13 | SSA def(self) |
372+
| simple.swift:106:13:106:13 | self | simple.swift:106:13:106:13 | SSA def(self) |
373+
| simple.swift:106:13:106:13 | self | simple.swift:106:13:106:13 | SSA def(self) |
374+
| simple.swift:106:13:106:13 | value | simple.swift:106:13:106:13 | SSA def(value) |
375+
| simple.swift:108:7:108:7 | SSA def(self) | simple.swift:116:13:116:13 | self |
376+
| simple.swift:108:7:108:7 | self | simple.swift:108:7:108:7 | SSA def(self) |
377+
| simple.swift:113:5:113:10 | SSA def(gv) | simple.swift:114:13:114:13 | gv |
378+
| simple.swift:113:10:113:10 | 0 | simple.swift:113:5:113:10 | SSA def(gv) |
379+
| simple.swift:116:13:116:13 | [post] self | simple.swift:117:13:117:13 | self |
380+
| simple.swift:116:13:116:13 | self | simple.swift:117:13:117:13 | self |
381+
| simple.swift:117:13:117:13 | [post] self | simple.swift:118:13:118:13 | self |
382+
| simple.swift:117:13:117:13 | self | simple.swift:118:13:118:13 | self |
383+
| simple.swift:118:13:118:13 | [post] self | simple.swift:119:13:119:13 | self |
384+
| simple.swift:118:13:118:13 | self | simple.swift:119:13:119:13 | self |
385+
| simple.swift:119:13:119:13 | [post] self | simple.swift:120:5:120:5 | self |
386+
| simple.swift:119:13:119:13 | self | simple.swift:120:5:120:5 | self |
387+
| simple.swift:120:5:120:5 | [post] self | simple.swift:121:13:121:13 | self |
388+
| simple.swift:120:5:120:5 | self | simple.swift:121:13:121:13 | self |
389+
| simple.swift:121:13:121:13 | [post] self | simple.swift:108:2:129:2 | self[return] |
390+
| simple.swift:121:13:121:13 | self | simple.swift:108:2:129:2 | self[return] |
357391
| stringinterpolation.swift:5:7:5:7 | SSA def(self) | stringinterpolation.swift:5:7:5:7 | self[return] |
358392
| stringinterpolation.swift:5:7:5:7 | SSA def(self) | stringinterpolation.swift:5:7:5:7 | self[return] |
359393
| stringinterpolation.swift:5:7:5:7 | self | stringinterpolation.swift:5:7:5:7 | SSA def(self) |

swift/ql/test/library-tests/dataflow/taint/core/simple.swift

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,45 @@ func taintThroughBitwiseOperators() {
8686

8787
sink(arg: ~source()) // $ tainted=87
8888
}
89+
90+
// --- globals and class member variables ---
91+
92+
let g1 = source()
93+
let g2 = source() + 1
94+
let g3 = g1
95+
var gv = source()
96+
97+
class MyClass {
98+
let m1 = source()
99+
let m2 = source() + 1
100+
let m3 = g1
101+
var mv = source()
102+
103+
static let s1 = source()
104+
static let s2 = source() + 1
105+
static let s3 = s1
106+
static var sv = source()
107+
108+
func test() {
109+
sink(arg: g1) // $ MISSING: tainted=92
110+
sink(arg: g2) // $ MISSING: tainted=93
111+
sink(arg: g3) // $ MISSING: tainted=94
112+
sink(arg: gv)
113+
gv = 0
114+
sink(arg: gv)
115+
116+
sink(arg: m1) // $ MISSING: tainted=98
117+
sink(arg: m2) // $ MISSING: tainted=99
118+
sink(arg: m3) // $ MISSING: tainted=100
119+
sink(arg: mv)
120+
mv = 0
121+
sink(arg: mv)
122+
123+
sink(arg: MyClass.s1) // $ MISSING: tainted=103
124+
sink(arg: MyClass.s2) // $ MISSING: tainted=104
125+
sink(arg: MyClass.s3) // $ MISSING: tainted=105
126+
sink(arg: MyClass.sv)
127+
MyClass.sv = 0
128+
sink(arg: MyClass.sv)
129+
}
130+
}

0 commit comments

Comments
 (0)