Skip to content

Commit 0065a5a

Browse files
committed
Swift: Accept path-explanation test changes.
1 parent 1edd4d8 commit 0065a5a

File tree

4 files changed

+86
-42
lines changed

4 files changed

+86
-42
lines changed

swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingPrivate.qll

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,6 @@ private module Cached {
4949
ae.getType().getName() = "String"
5050
)
5151
or
52-
// allow flow through `URL.init`.
53-
exists(CallExpr call, StructDecl c, AbstractFunctionDecl f |
54-
c.getName() = "URL" and
55-
c.getAMember() = f and
56-
f.getName() = ["init(string:)", "init(string:relativeTo:)"] and
57-
call.getStaticTarget() = f and
58-
nodeFrom.asExpr() = call.getAnArgument().getExpr() and
59-
nodeTo.asExpr() = call
60-
)
61-
or
6252
FlowSummaryImpl::Private::Steps::summaryLocalStep(nodeFrom, nodeTo, false)
6353
}
6454

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

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -123,17 +123,3 @@
123123
| string.swift:39:13:39:19 | ... .+(_:_:) ... | string.swift:39:13:39:29 | ... .+(_:_:) ... |
124124
| string.swift:39:19:39:19 | tainted | string.swift:39:13:39:19 | ... .+(_:_:) ... |
125125
| string.swift:39:29:39:29 | < | string.swift:39:13:39:29 | ... .+(_:_:) ... |
126-
| url.swift:40:29:40:29 | clean | url.swift:40:17:40:34 | call to init(string:) |
127-
| url.swift:41:31:41:31 | tainted | url.swift:41:19:41:38 | call to init(string:) |
128-
| url.swift:46:24:46:24 | clean | url.swift:46:12:46:46 | call to init(string:relativeTo:) |
129-
| url.swift:46:43:46:43 | nil | url.swift:46:12:46:46 | call to init(string:relativeTo:) |
130-
| url.swift:47:24:47:24 | tainted | url.swift:47:12:47:48 | call to init(string:relativeTo:) |
131-
| url.swift:47:45:47:45 | nil | url.swift:47:12:47:48 | call to init(string:relativeTo:) |
132-
| url.swift:48:24:48:24 | clean | url.swift:48:12:48:51 | call to init(string:relativeTo:) |
133-
| url.swift:48:43:48:43 | urlClean | url.swift:48:12:48:51 | call to init(string:relativeTo:) |
134-
| url.swift:49:24:49:24 | clean | url.swift:49:12:49:53 | call to init(string:relativeTo:) |
135-
| url.swift:49:43:49:43 | urlTainted | url.swift:49:12:49:53 | call to init(string:relativeTo:) |
136-
| url.swift:51:25:51:25 | clean | url.swift:51:13:51:30 | call to init(string:) |
137-
| url.swift:55:25:55:25 | tainted | url.swift:55:13:55:32 | call to init(string:) |
138-
| url.swift:60:26:60:26 | clean | url.swift:60:14:60:31 | call to init(string:) |
139-
| url.swift:64:28:64:28 | tainted | url.swift:64:16:64:35 | call to init(string:) |

swift/ql/test/library-tests/dataflow/taint/Taint.expected

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,29 @@ edges
1515
| try.swift:18:18:18:25 | call to source() : | try.swift:18:12:18:27 | ...! |
1616
| url.swift:8:2:8:25 | [summary param] 0 in init(string:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:) : |
1717
| url.swift:8:8:8:16 | string : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:) : |
18+
| url.swift:9:2:9:43 | [summary param] 0 in init(string:relativeTo:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : |
19+
| url.swift:9:2:9:43 | [summary param] 1 in init(string:relativeTo:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : |
20+
| url.swift:9:8:9:16 | string : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : |
21+
| url.swift:9:24:9:39 | relativeTo : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : |
1822
| url.swift:26:2:29:55 | [summary param] 0 in dataTask(with:completionHandler:) : | file://:0:0:0:0 | [summary] to write: argument 1.parameter 0 in dataTask(with:completionHandler:) : |
1923
| url.swift:27:5:27:15 | url : | file://:0:0:0:0 | [summary] to write: argument 1.parameter 0 in dataTask(with:completionHandler:) : |
2024
| url.swift:39:16:39:23 | call to source() : | url.swift:41:31:41:31 | tainted : |
21-
| url.swift:39:16:39:23 | call to source() : | url.swift:44:12:44:12 | urlTainted |
22-
| url.swift:39:16:39:23 | call to source() : | url.swift:47:12:47:49 | ...! |
23-
| url.swift:39:16:39:23 | call to source() : | url.swift:49:12:49:54 | ...! |
25+
| url.swift:39:16:39:23 | call to source() : | url.swift:47:24:47:24 | tainted : |
2426
| url.swift:39:16:39:23 | call to source() : | url.swift:64:28:64:28 | tainted : |
25-
| url.swift:39:16:39:23 | call to source() : | url.swift:65:12:65:12 | ...! |
26-
| url.swift:39:16:39:23 | call to source() : | url.swift:67:46:67:46 | urlTainted : |
2727
| url.swift:41:19:41:38 | call to init(string:) : | url.swift:44:12:44:12 | urlTainted |
28-
| url.swift:41:19:41:38 | call to init(string:) : | url.swift:49:12:49:54 | ...! |
28+
| url.swift:41:19:41:38 | call to init(string:) : | url.swift:49:43:49:43 | urlTainted : |
2929
| url.swift:41:19:41:38 | call to init(string:) : | url.swift:67:46:67:46 | urlTainted : |
3030
| url.swift:41:31:41:31 | tainted : | url.swift:8:2:8:25 | [summary param] 0 in init(string:) : |
3131
| url.swift:41:31:41:31 | tainted : | url.swift:8:8:8:16 | string : |
3232
| url.swift:41:31:41:31 | tainted : | url.swift:41:19:41:38 | call to init(string:) : |
33+
| url.swift:47:12:47:48 | call to init(string:relativeTo:) : | url.swift:47:12:47:49 | ...! |
34+
| url.swift:47:24:47:24 | tainted : | url.swift:9:2:9:43 | [summary param] 0 in init(string:relativeTo:) : |
35+
| url.swift:47:24:47:24 | tainted : | url.swift:9:8:9:16 | string : |
36+
| url.swift:47:24:47:24 | tainted : | url.swift:47:12:47:48 | call to init(string:relativeTo:) : |
37+
| url.swift:49:12:49:53 | call to init(string:relativeTo:) : | url.swift:49:12:49:54 | ...! |
38+
| url.swift:49:43:49:43 | urlTainted : | url.swift:9:2:9:43 | [summary param] 1 in init(string:relativeTo:) : |
39+
| url.swift:49:43:49:43 | urlTainted : | url.swift:9:24:9:39 | relativeTo : |
40+
| url.swift:49:43:49:43 | urlTainted : | url.swift:49:12:49:53 | call to init(string:relativeTo:) : |
3341
| url.swift:64:16:64:35 | call to init(string:) : | url.swift:65:12:65:12 | ...! |
3442
| url.swift:64:28:64:28 | tainted : | url.swift:8:2:8:25 | [summary param] 0 in init(string:) : |
3543
| url.swift:64:28:64:28 | tainted : | url.swift:8:8:8:16 | string : |
@@ -41,6 +49,10 @@ nodes
4149
| file://:0:0:0:0 | [summary] to write: argument 1.parameter 0 in dataTask(with:completionHandler:) : | semmle.label | [summary] to write: argument 1.parameter 0 in dataTask(with:completionHandler:) : |
4250
| file://:0:0:0:0 | [summary] to write: return (return) in init(string:) : | semmle.label | [summary] to write: return (return) in init(string:) : |
4351
| file://:0:0:0:0 | [summary] to write: return (return) in init(string:) : | semmle.label | [summary] to write: return (return) in init(string:) : |
52+
| file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | semmle.label | [summary] to write: return (return) in init(string:relativeTo:) : |
53+
| file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | semmle.label | [summary] to write: return (return) in init(string:relativeTo:) : |
54+
| file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | semmle.label | [summary] to write: return (return) in init(string:relativeTo:) : |
55+
| file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | semmle.label | [summary] to write: return (return) in init(string:relativeTo:) : |
4456
| string.swift:5:11:5:18 | call to source() : | semmle.label | call to source() : |
4557
| string.swift:7:13:7:13 | "..." | semmle.label | "..." |
4658
| string.swift:9:13:9:13 | "..." | semmle.label | "..." |
@@ -61,14 +73,22 @@ nodes
6173
| try.swift:18:18:18:25 | call to source() : | semmle.label | call to source() : |
6274
| url.swift:8:2:8:25 | [summary param] 0 in init(string:) : | semmle.label | [summary param] 0 in init(string:) : |
6375
| url.swift:8:8:8:16 | string : | semmle.label | string : |
76+
| url.swift:9:2:9:43 | [summary param] 0 in init(string:relativeTo:) : | semmle.label | [summary param] 0 in init(string:relativeTo:) : |
77+
| url.swift:9:2:9:43 | [summary param] 1 in init(string:relativeTo:) : | semmle.label | [summary param] 1 in init(string:relativeTo:) : |
78+
| url.swift:9:8:9:16 | string : | semmle.label | string : |
79+
| url.swift:9:24:9:39 | relativeTo : | semmle.label | relativeTo : |
6480
| url.swift:26:2:29:55 | [summary param] 0 in dataTask(with:completionHandler:) : | semmle.label | [summary param] 0 in dataTask(with:completionHandler:) : |
6581
| url.swift:27:5:27:15 | url : | semmle.label | url : |
6682
| url.swift:39:16:39:23 | call to source() : | semmle.label | call to source() : |
6783
| url.swift:41:19:41:38 | call to init(string:) : | semmle.label | call to init(string:) : |
6884
| url.swift:41:31:41:31 | tainted : | semmle.label | tainted : |
6985
| url.swift:44:12:44:12 | urlTainted | semmle.label | urlTainted |
86+
| url.swift:47:12:47:48 | call to init(string:relativeTo:) : | semmle.label | call to init(string:relativeTo:) : |
7087
| url.swift:47:12:47:49 | ...! | semmle.label | ...! |
88+
| url.swift:47:24:47:24 | tainted : | semmle.label | tainted : |
89+
| url.swift:49:12:49:53 | call to init(string:relativeTo:) : | semmle.label | call to init(string:relativeTo:) : |
7190
| url.swift:49:12:49:54 | ...! | semmle.label | ...! |
91+
| url.swift:49:43:49:43 | urlTainted : | semmle.label | urlTainted : |
7292
| url.swift:64:16:64:35 | call to init(string:) : | semmle.label | call to init(string:) : |
7393
| url.swift:64:28:64:28 | tainted : | semmle.label | tainted : |
7494
| url.swift:65:12:65:12 | ...! | semmle.label | ...! |
@@ -78,6 +98,10 @@ nodes
7898
subpaths
7999
| url.swift:41:31:41:31 | tainted : | url.swift:8:2:8:25 | [summary param] 0 in init(string:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:) : | url.swift:41:19:41:38 | call to init(string:) : |
80100
| url.swift:41:31:41:31 | tainted : | url.swift:8:8:8:16 | string : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:) : | url.swift:41:19:41:38 | call to init(string:) : |
101+
| url.swift:47:24:47:24 | tainted : | url.swift:9:2:9:43 | [summary param] 0 in init(string:relativeTo:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | url.swift:47:12:47:48 | call to init(string:relativeTo:) : |
102+
| url.swift:47:24:47:24 | tainted : | url.swift:9:8:9:16 | string : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | url.swift:47:12:47:48 | call to init(string:relativeTo:) : |
103+
| url.swift:49:43:49:43 | urlTainted : | url.swift:9:2:9:43 | [summary param] 1 in init(string:relativeTo:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | url.swift:49:12:49:53 | call to init(string:relativeTo:) : |
104+
| url.swift:49:43:49:43 | urlTainted : | url.swift:9:24:9:39 | relativeTo : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | url.swift:49:12:49:53 | call to init(string:relativeTo:) : |
81105
| url.swift:64:28:64:28 | tainted : | url.swift:8:2:8:25 | [summary param] 0 in init(string:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:) : | url.swift:64:16:64:35 | call to init(string:) : |
82106
| url.swift:64:28:64:28 | tainted : | url.swift:8:8:8:16 | string : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:) : | url.swift:64:16:64:35 | call to init(string:) : |
83107
#select

0 commit comments

Comments
 (0)