Skip to content

Commit c7c8807

Browse files
committed
Swift: Use FieldDecl.hasQualifiedName.
1 parent 5bf82ae commit c7c8807

File tree

6 files changed

+31
-48
lines changed

6 files changed

+31
-48
lines changed

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,8 @@ private class CollectionFieldsInheritTaint extends TaintInheritingContent,
4747
DataFlow::Content::FieldContent
4848
{
4949
CollectionFieldsInheritTaint() {
50-
exists(FieldDecl f | this.getField() = f |
51-
f.getEnclosingDecl().asNominalTypeDecl().getName() = ["Collection", "BidirectionalCollection"] and
52-
f.getName() = ["first", "last"]
53-
)
50+
this.getField()
51+
.(FieldDecl)
52+
.hasQualifiedName(["Collection", "BidirectionalCollection"], ["first", "last"])
5453
}
5554
}

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

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -132,20 +132,19 @@ private class NsStringFieldsInheritTaint extends TaintInheritingContent,
132132
DataFlow::Content::FieldContent
133133
{
134134
NsStringFieldsInheritTaint() {
135-
exists(FieldDecl f | this.getField() = f |
136-
f.getEnclosingDecl().asNominalTypeDecl().getName() = "NSString" and
137-
f.getName() =
138-
[
139-
"utf8String", "lowercased", "localizedLowedCase", "uppercased", "localizedUppercase",
140-
"capitalized", "localizedCapitalized", "decomposedStringWithCanonicalMapping",
141-
"decomposedStringWithCompatibilityMapping", "precomposedStringWithCanonicalMapping",
142-
"precomposedStringWithCompatibilityMapping", "doubleValue", "floatValue", "intValue",
143-
"integerValue", "longLongValue", "boolValue", "description", "pathComponents",
144-
"fileSystemRepresentation", "lastPathComponent", "pathExtension",
145-
"abbreviatingWithTildeInPath", "deletingLastPathComponent", "deletingPathExtension",
146-
"expandingTildeInPath", "resolvingSymlinksInPath", "standardizingPath",
147-
"removingPercentEncoding"
148-
]
149-
)
135+
this.getField()
136+
.(FieldDecl)
137+
.hasQualifiedName("NSString",
138+
[
139+
"utf8String", "lowercased", "localizedLowedCase", "uppercased", "localizedUppercase",
140+
"capitalized", "localizedCapitalized", "decomposedStringWithCanonicalMapping",
141+
"decomposedStringWithCompatibilityMapping", "precomposedStringWithCanonicalMapping",
142+
"precomposedStringWithCompatibilityMapping", "doubleValue", "floatValue", "intValue",
143+
"integerValue", "longLongValue", "boolValue", "description", "pathComponents",
144+
"fileSystemRepresentation", "lastPathComponent", "pathExtension",
145+
"abbreviatingWithTildeInPath", "deletingLastPathComponent", "deletingPathExtension",
146+
"expandingTildeInPath", "resolvingSymlinksInPath", "standardizingPath",
147+
"removingPercentEncoding"
148+
])
150149
}
151150
}

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,5 @@ private class SequenceSummaries extends SummaryModelCsv {
3636
private class SequenceFieldsInheritTaint extends TaintInheritingContent,
3737
DataFlow::Content::FieldContent
3838
{
39-
SequenceFieldsInheritTaint() {
40-
exists(FieldDecl f | this.getField() = f |
41-
f.getEnclosingDecl().asNominalTypeDecl().getName() = "Sequence" and
42-
f.getName() = "lazy"
43-
)
44-
}
39+
SequenceFieldsInheritTaint() { this.getField().(FieldDecl).hasQualifiedName("Sequence", "lazy") }
4540
}

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,16 @@ private class StringFieldsInheritTaint extends TaintInheritingContent,
124124
DataFlow::Content::FieldContent
125125
{
126126
StringFieldsInheritTaint() {
127-
exists(FieldDecl f | this.getField() = f |
128-
f.getEnclosingDecl().asNominalTypeDecl().getName() = ["String", "StringProtocol"] and
129-
f.getName() =
130-
[
131-
"unicodeScalars", "utf8", "utf16", "lazy", "utf8CString", "description",
132-
"debugDescription", "dataValue", "identifierValue", "capitalized", "localizedCapitalized",
133-
"localizedLowercase", "localizedUppercase", "decomposedStringWithCanonicalMapping",
134-
"decomposedStringWithCompatibilityMapping", "precomposedStringWithCanonicalMapping",
135-
"precomposedStringWithCompatibilityMapping", "removingPercentEncoding"
136-
]
137-
)
127+
this.getField()
128+
.(FieldDecl)
129+
.hasQualifiedName(["String", "StringProtocol"],
130+
[
131+
"unicodeScalars", "utf8", "utf16", "lazy", "utf8CString", "description",
132+
"debugDescription", "dataValue", "identifierValue", "capitalized",
133+
"localizedCapitalized", "localizedLowercase", "localizedUppercase",
134+
"decomposedStringWithCanonicalMapping", "decomposedStringWithCompatibilityMapping",
135+
"precomposedStringWithCanonicalMapping", "precomposedStringWithCompatibilityMapping",
136+
"removingPercentEncoding"
137+
])
138138
}
139139
}

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -208,10 +208,5 @@ private class WKUserScriptSummaries extends SummaryModelCsv {
208208
private class WKUserScriptInheritsTaint extends TaintInheritingContent,
209209
DataFlow::Content::FieldContent
210210
{
211-
WKUserScriptInheritsTaint() {
212-
exists(FieldDecl f | this.getField() = f |
213-
f.getEnclosingDecl().asNominalTypeDecl().getName() = "WKUserScript" and
214-
f.getName() = "source"
215-
)
216-
}
211+
WKUserScriptInheritsTaint() { this.getField().hasQualifiedName("WKUserScript", "source") }
217212
}

swift/ql/lib/codeql/swift/security/CleartextLoggingExtensions.qll

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,7 @@ private class OsLogNonRedactedType extends Type {
7474
private class OsLogPrivacyRef extends MemberRefExpr {
7575
string optionName;
7676

77-
OsLogPrivacyRef() {
78-
exists(FieldDecl f | this.getMember() = f |
79-
f.getEnclosingDecl().asNominalTypeDecl().getName() = "OSLogPrivacy" and
80-
optionName = f.getName()
81-
)
82-
}
77+
OsLogPrivacyRef() { this.getMember().(FieldDecl).hasQualifiedName("OSLogPrivacy", optionName) }
8378

8479
/** Holds if this is a safe privacy option (private or sensitive). */
8580
predicate isSafe() { optionName = ["private", "sensitive"] }

0 commit comments

Comments
 (0)