Skip to content

Commit 11f45cf

Browse files
committed
Swift: Add expectation annotations.
1 parent c2ee5fe commit 11f45cf

File tree

5 files changed

+30
-47
lines changed

5 files changed

+30
-47
lines changed
Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +0,0 @@
1-
| string.swift:7:13:7:13 | "..." | Unexpected result: taintedFromLine=5 |
2-
| string.swift:9:13:9:13 | "..." | Unexpected result: taintedFromLine=5 |
3-
| string.swift:11:13:11:13 | "..." | Unexpected result: taintedFromLine=5 |
4-
| string.swift:16:13:16:13 | "..." | Unexpected result: taintedFromLine=5 |
5-
| string.swift:18:13:18:13 | "..." | Unexpected result: taintedFromLine=5 |
6-
| string.swift:31:13:31:13 | tainted | Unexpected result: taintedFromLine=28 |
7-
| string.swift:34:13:34:21 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 |
8-
| string.swift:35:13:35:23 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 |
9-
| string.swift:36:13:36:23 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 |
10-
| string.swift:39:13:39:29 | ... call to +(_:_:) ... | Unexpected result: taintedFromLine=28 |
11-
| try.swift:9:13:9:24 | try ... | Unexpected result: taintedFromLine=9 |
12-
| try.swift:15:12:15:24 | try! ... | Unexpected result: taintedFromLine=15 |
13-
| try.swift:18:12:18:27 | ...! | Unexpected result: taintedFromLine=18 |
14-
| url.swift:18:12:18:12 | urlTainted | Unexpected result: taintedFromLine=13 |
15-
| url.swift:21:12:21:49 | ...! | Unexpected result: taintedFromLine=13 |
16-
| url.swift:23:12:23:54 | ...! | Unexpected result: taintedFromLine=13 |
17-
| url.swift:39:12:39:12 | ...! | Unexpected result: taintedFromLine=13 |

swift/ql/test/library-tests/dataflow/taint/data.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ func taintThroughData() {
1414
let dataTainted2 = Data(dataTainted)
1515

1616
sink(arg: dataClean)
17-
sink(arg: dataTainted) // tainted [NOT DETECTED]
18-
sink(arg: dataTainted2) // tainted [NOT DETECTED]
17+
sink(arg: dataTainted) // $ MISSING: taintedFromLine=13
18+
sink(arg: dataTainted2) // $ MISSING: taintedFromLine=13
1919

2020
let stringClean = String(data: dataClean, encoding: String.Encoding.utf8)
2121
let stringTainted = String(data: dataTainted, encoding: String.Encoding.utf8)
2222

23-
sink2(arg: stringClean!) // tainted [NOT DETECTED]
24-
sink2(arg: stringTainted!) // tainted [NOT DETECTED]
23+
sink2(arg: stringClean!) // $ MISSING: taintedFromLine=13
24+
sink2(arg: stringTainted!) // $ MISSING: taintedFromLine=13
2525
}

swift/ql/test/library-tests/dataflow/taint/string.swift

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ func sink(arg: String) {}
44
func taintThroughInterpolatedStrings() {
55
var x = source()
66

7-
sink(arg: "\(x)") // tainted
7+
sink(arg: "\(x)") // $ taintedFromLine=5
88

9-
sink(arg: "\(x) \(x)") // tainted
9+
sink(arg: "\(x) \(x)") // $ taintedFromLine=5
1010

11-
sink(arg: "\(x) \(0) \(x)") // tainted
11+
sink(arg: "\(x) \(0) \(x)") // $ taintedFromLine=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)") // $ taintedFromLine=5
1717

18-
sink(arg: "\(y) world \(x)") // tainted
18+
sink(arg: "\(y) world \(x)") // $ taintedFromLine=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) // $ taintedFromLine=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) // $ taintedFromLine=28
35+
sink(arg: tainted + clean) // $ taintedFromLine=28
36+
sink(arg: tainted + tainted) // $ taintedFromLine=28
3737

3838
sink(arg: ">" + clean + "<")
39-
sink(arg: ">" + tainted + "<") // tainted
39+
sink(arg: ">" + tainted + "<") // $ taintedFromLine=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: taintedFromLine=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: taintedFromLine=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: taintedFromLine=68
7070
}
7171

7272
func 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: taintedFromLine=74
79+
sink(arg: String(taintedInt)) // $ MISSING: taintedFromLine=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: taintedFromLine=74
8383

8484
sink(arg: clean.description)
85-
sink(arg: tainted.description) // tainted [NOT DETECTED]
85+
sink(arg: tainted.description) // $ MISSING: taintedFromLine=74
8686

8787
sink(arg: clean.debugDescription)
88-
sink(arg: tainted.debugDescription) // tainted [NOT DETECTED]
88+
sink(arg: tainted.debugDescription) // $ MISSING: taintedFromLine=74
8989
}

swift/ql/test/library-tests/dataflow/taint/try.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ func taintThroughTry() {
66
do
77
{
88
sink(arg: try clean())
9-
sink(arg: try source()) // tainted
9+
sink(arg: try source()) // $ taintedFromLine=9
1010
} catch {
1111
// ...
1212
}
1313

1414
sink(arg: try! clean())
15-
sink(arg: try! source()) // tainted
15+
sink(arg: try! source()) // $ taintedFromLine=15
1616

1717
sink(arg: (try? clean())!)
18-
sink(arg: (try? source())!) // tainted
18+
sink(arg: (try? source())!) // $ taintedFromLine=18
1919
}

swift/ql/test/library-tests/dataflow/taint/url.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@ func taintThroughURL() {
1515
let urlTainted = URL(string: tainted)!
1616

1717
sink(arg: urlClean)
18-
sink(arg: urlTainted) // tainted
18+
sink(arg: urlTainted) // $ taintedFromLine=13
1919

2020
sink(arg: URL(string: clean, relativeTo: nil)!)
21-
sink(arg: URL(string: tainted, relativeTo: nil)!) // tainted
21+
sink(arg: URL(string: tainted, relativeTo: nil)!) // $ taintedFromLine=13
2222
sink(arg: URL(string: clean, relativeTo: urlClean)!)
23-
sink(arg: URL(string: clean, relativeTo: urlTainted)!) // tainted
23+
sink(arg: URL(string: clean, relativeTo: urlTainted)!) // $ taintedFromLine=13
2424

2525
if let x = URL(string: clean) {
2626
sink(arg: x)
2727
}
2828

2929
if let y = URL(string: tainted) {
30-
sink(arg: y) // tainted [NOT DETECTED]
30+
sink(arg: y) // $ MISSING: taintedFromLine=13
3131
}
3232

3333
var urlClean2 : URL!
@@ -36,5 +36,5 @@ func taintThroughURL() {
3636

3737
var urlTainted2 : URL!
3838
urlTainted2 = URL(string: tainted)
39-
sink(arg: urlTainted2) // tainted
39+
sink(arg: urlTainted2) // $ taintedFromLine=13
4040
}

0 commit comments

Comments
 (0)