Skip to content

Commit 7e8645a

Browse files
committed
Swift: Model NSMutableString.
1 parent d04ed14 commit 7e8645a

File tree

4 files changed

+81
-7
lines changed

4 files changed

+81
-7
lines changed

swift/ql/lib/codeql/swift/frameworks/StandardLibrary/NsString.qll

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,12 @@ private class NsStringSummaries extends SummaryModelCsv {
113113
";NSString;true;addingPercentEscapes(using:);;;Argument[-1];ReturnValue;taint",
114114
";NSString;true;replacingPercentEscapes(using:);;;Argument[-1];ReturnValue;taint",
115115
";NSString;true;applyTransform(_:reverse:range:updatedRange:);;;Argument[-1];ReturnValue;taint",
116+
";NSMutableString;true;append(_:);;;Argument[0];Argument[-1];taint",
117+
";NSMutableString;true;insert(_:at:);;;Argument[0];Argument[-1];taint",
118+
";NSMutableString;true;replaceCharacters(in:with:);;;Argument[1];Argument[-1];taint",
119+
";NSMutableString;true;replaceOccurrences(of:with:options:range:);;;Argument[1];Argument[-1];taint",
120+
";NSMutableString;true;setString(_:);;;Argument[0];Argument[-1];taint",
121+
";NSMutableString;true;appendFormat(_:_:);;;Argument[0];Argument[-1];taint", //0..
116122
]
117123
}
118124
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,13 +1157,15 @@
11571157
| nsstring.swift:395:13:395:13 | str30 | nsstring.swift:396:3:396:3 | str30 |
11581158
| nsstring.swift:396:3:396:3 | [post] str30 | nsstring.swift:397:13:397:13 | str30 |
11591159
| nsstring.swift:396:3:396:3 | str30 | nsstring.swift:397:13:397:13 | str30 |
1160+
| nsstring.swift:396:16:396:29 | call to sourceString() | nsstring.swift:396:3:396:3 | [post] str30 |
11601161
| nsstring.swift:399:7:399:7 | SSA def(str31) | nsstring.swift:400:13:400:13 | str31 |
11611162
| nsstring.swift:399:15:399:41 | call to NSMutableString.init(string:) | nsstring.swift:399:7:399:7 | SSA def(str31) |
11621163
| nsstring.swift:399:39:399:39 | | nsstring.swift:399:15:399:41 | call to NSMutableString.init(string:) |
11631164
| nsstring.swift:400:13:400:13 | [post] str31 | nsstring.swift:401:3:401:3 | str31 |
11641165
| nsstring.swift:400:13:400:13 | str31 | nsstring.swift:401:3:401:3 | str31 |
11651166
| nsstring.swift:401:3:401:3 | [post] str31 | nsstring.swift:402:13:402:13 | str31 |
11661167
| nsstring.swift:401:3:401:3 | str31 | nsstring.swift:402:13:402:13 | str31 |
1168+
| nsstring.swift:401:16:401:29 | call to sourceString() | nsstring.swift:401:3:401:3 | [post] str31 |
11671169
| nsstring.swift:404:7:404:7 | SSA def(str32) | nsstring.swift:405:13:405:13 | str32 |
11681170
| nsstring.swift:404:15:404:41 | call to NSMutableString.init(string:) | nsstring.swift:404:7:404:7 | SSA def(str32) |
11691171
| nsstring.swift:404:39:404:39 | | nsstring.swift:404:15:404:41 | call to NSMutableString.init(string:) |
@@ -1172,28 +1174,33 @@
11721174
| nsstring.swift:406:3:406:3 | [post] str32 | nsstring.swift:407:13:407:13 | str32 |
11731175
| nsstring.swift:406:3:406:3 | str32 | nsstring.swift:407:13:407:13 | str32 |
11741176
| nsstring.swift:406:31:406:31 | myRange | nsstring.swift:411:66:411:66 | myRange |
1177+
| nsstring.swift:406:46:406:59 | call to sourceString() | nsstring.swift:406:3:406:3 | [post] str32 |
11751178
| nsstring.swift:409:7:409:7 | SSA def(str33) | nsstring.swift:410:13:410:13 | str33 |
11761179
| nsstring.swift:409:15:409:41 | call to NSMutableString.init(string:) | nsstring.swift:409:7:409:7 | SSA def(str33) |
11771180
| nsstring.swift:409:39:409:39 | | nsstring.swift:409:15:409:41 | call to NSMutableString.init(string:) |
11781181
| nsstring.swift:410:13:410:13 | [post] str33 | nsstring.swift:411:3:411:3 | str33 |
11791182
| nsstring.swift:410:13:410:13 | str33 | nsstring.swift:411:3:411:3 | str33 |
11801183
| nsstring.swift:411:3:411:3 | [post] str33 | nsstring.swift:412:13:412:13 | str33 |
11811184
| nsstring.swift:411:3:411:3 | str33 | nsstring.swift:412:13:412:13 | str33 |
1185+
| nsstring.swift:411:43:411:56 | call to sourceString() | nsstring.swift:411:3:411:3 | [post] str33 |
11821186
| nsstring.swift:414:7:414:7 | SSA def(str34) | nsstring.swift:415:13:415:13 | str34 |
11831187
| nsstring.swift:414:15:414:41 | call to NSMutableString.init(string:) | nsstring.swift:414:7:414:7 | SSA def(str34) |
11841188
| nsstring.swift:414:39:414:39 | | nsstring.swift:414:15:414:41 | call to NSMutableString.init(string:) |
11851189
| nsstring.swift:415:13:415:13 | [post] str34 | nsstring.swift:416:3:416:3 | str34 |
11861190
| nsstring.swift:415:13:415:13 | str34 | nsstring.swift:416:3:416:3 | str34 |
11871191
| nsstring.swift:416:3:416:3 | [post] str34 | nsstring.swift:417:13:417:13 | str34 |
11881192
| nsstring.swift:416:3:416:3 | str34 | nsstring.swift:417:13:417:13 | str34 |
1193+
| nsstring.swift:416:19:416:32 | call to sourceString() | nsstring.swift:416:3:416:3 | [post] str34 |
11891194
| nsstring.swift:417:13:417:13 | [post] str34 | nsstring.swift:418:3:418:3 | str34 |
11901195
| nsstring.swift:417:13:417:13 | str34 | nsstring.swift:418:3:418:3 | str34 |
11911196
| nsstring.swift:418:3:418:3 | [post] str34 | nsstring.swift:419:13:419:13 | str34 |
11921197
| nsstring.swift:418:3:418:3 | str34 | nsstring.swift:419:13:419:13 | str34 |
1198+
| nsstring.swift:418:16:418:16 | -append | nsstring.swift:418:3:418:3 | [post] str34 |
11931199
| nsstring.swift:419:13:419:13 | [post] str34 | nsstring.swift:420:3:420:3 | str34 |
11941200
| nsstring.swift:419:13:419:13 | str34 | nsstring.swift:420:3:420:3 | str34 |
11951201
| nsstring.swift:420:3:420:3 | [post] str34 | nsstring.swift:421:13:421:13 | str34 |
11961202
| nsstring.swift:420:3:420:3 | str34 | nsstring.swift:421:13:421:13 | str34 |
1203+
| nsstring.swift:420:19:420:19 | | nsstring.swift:420:3:420:3 | [post] str34 |
11971204
| nsstring.swift:425:13:425:28 | call to sourceNSString() | nsstring.swift:425:13:425:30 | .utf8String |
11981205
| nsstring.swift:426:13:426:62 | call to Self.init(utf8String:) | nsstring.swift:426:13:426:63 | ...! |
11991206
| nsstring.swift:426:34:426:49 | call to sourceNSString() | nsstring.swift:426:34:426:51 | .utf8String |

0 commit comments

Comments
 (0)