Skip to content

Commit 989a546

Browse files
committed
Swift: Model the NSString.enumerate* methods.
1 parent d0ca704 commit 989a546

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ private class NsStringSummaries extends SummaryModelCsv {
119119
";NSString;true;addingPercentEscapes(using:);;;Argument[-1];ReturnValue;taint",
120120
";NSString;true;replacingPercentEscapes(using:);;;Argument[-1];ReturnValue;taint",
121121
";NSString;true;applyTransform(_:reverse:range:updatedRange:);;;Argument[-1];ReturnValue;taint",
122+
";NSString;true;enumerateLines(_:);;;Argument[-1];Argument[0].Parameter[0];taint",
123+
";NSString;true;enumerateSubstrings(in:options:using:);;;Argument[-1];Argument[2].Parameter[0].OptionalSome;taint",
124+
";NSString;true;enumerateSubstrings(in:options:using:);;;Argument[2].Parameter[0].OptionalSome;Argument[-1];taint",
125+
";NSString;true;enumerateLinguisticTags(in:scheme:options:orthography:using:);;;Argument[-1];Argument[4].Parameter[0].OptionalSome;taint",
122126
";NSMutableString;true;append(_:);;;Argument[0];Argument[-1];taint",
123127
";NSMutableString;true;insert(_:at:);;;Argument[0];Argument[-1];taint",
124128
";NSMutableString;true;replaceCharacters(in:with:);;;Argument[1];Argument[-1];taint",

swift/ql/test/library-tests/dataflow/taint/libraries/nsstring.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ func taintThroughInterpolatedStrings() {
355355
}))
356356
sink(arg: sourceNSString().enumerateLines({
357357
line, stop in
358-
sink(arg: line) // $ MISSING: tainted=
358+
sink(arg: line) // $ tainted=356
359359
sink(arg: stop)
360360
}))
361361

@@ -492,6 +492,6 @@ func moreTests() {
492492

493493
sink(arg: myTainted.enumerateSubstrings(in: myRange, options: [], using: {
494494
substring, substringRange, enclosingRange, stop in
495-
sink(arg: substring!) // $ MISSING: tainted=
495+
sink(arg: substring!) // $ tainted=490
496496
}))
497497
}

0 commit comments

Comments
 (0)