Skip to content

Commit 3586926

Browse files
committed
Swift: Move first, last into Collection, BidirectionalCollection.
1 parent b69d862 commit 3586926

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,21 @@ private class CollectionSummaries extends SummaryModelCsv {
3434
]
3535
}
3636
}
37+
38+
/**
39+
* A content implying that, if a `Collection` is tainted, certain fields are also
40+
* tainted.
41+
*/
42+
private class CollectionFieldsInheritTaint extends TaintInheritingContent,
43+
DataFlow::Content::FieldContent {
44+
CollectionFieldsInheritTaint() {
45+
exists(FieldDecl f | this.getField() = f |
46+
(
47+
f.getEnclosingDecl().(NominalTypeDecl).getName() = ["Collection", "BidirectionalCollection"] or
48+
f.getEnclosingDecl().(ExtensionDecl).getExtendedTypeDecl().getName() =
49+
["Collection", "BidirectionalCollection"]
50+
) and
51+
f.getName() = ["first", "last"]
52+
)
53+
}
54+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ private class StringFieldsInheritTaint extends TaintInheritingContent,
135135
) and
136136
f.getName() =
137137
[
138-
"first", "last", "unicodeScalars", "utf8", "utf16", "lazy", "utf8CString", "description",
138+
"unicodeScalars", "utf8", "utf16", "lazy", "utf8CString", "description",
139139
"debugDescription", "dataValue", "identifierValue", "capitalized", "localizedCapitalized",
140140
"localizedLowercase", "localizedUppercase", "decomposedStringWithCanonicalMapping",
141141
"decomposedStringWithCompatibilityMapping", "precomposedStringWithCanonicalMapping",

0 commit comments

Comments
 (0)