Skip to content

Commit 2679d1f

Browse files
committed
Swift: Add models.
1 parent 451d779 commit 2679d1f

File tree

2 files changed

+9
-6
lines changed
  • swift/ql

2 files changed

+9
-6
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ private class StringSummaries extends SummaryModelCsv {
4040
";StringProtocol;true;addingPercentEncoding(withAllowedCharacter:);;;Argument[-1];ReturnValue;taint",
4141
";StringProtocol;true;addingPercentEscapes(using:);;;Argument[-1];ReturnValue;taint",
4242
";StringProtocol;true;appending(_:);;;Argument[-1..0];ReturnValue;taint",
43-
";StringProtocol;true;appendingFormat(_:_:);;;Argument[-1..0];ReturnValue;taint", //-1..
43+
";StringProtocol;true;appendingFormat(_:_:);;;Argument[-1..0];ReturnValue;taint",
44+
";StringProtocol;true;appendingFormat(_:_:);;;Argument[1].CollectionElement;ReturnValue;taint",
4445
";StringProtocol;true;applyingTransform(_:reverse:);;;Argument[-1];ReturnValue;taint",
4546
";StringProtocol;true;cString(using:);;;Argument[-1];ReturnValue;taint",
4647
";StringProtocol;true;capitalized(with:);;;Argument[-1];ReturnValue;taint",
@@ -123,6 +124,8 @@ private class StringSummaries extends SummaryModelCsv {
123124
";String;true;randomElement(using:);;;Argument[-1];ReturnValue;taint",
124125
";String;true;enumerated();;;Argument[-1];ReturnValue;taint",
125126
";String;true;encode(to:);;;Argument[-1];Argument[0];taint",
127+
";String;true;decodeCString(_:as:repairingInvalidCodeUnits:);;;Argument[0];ReturnValue.TupleElement[0];taint",
128+
";String;true;decodeCString(_:as:repairingInvalidCodeUnits:);;;Argument[0].CollectionElement;ReturnValue.TupleElement[0];taint",
126129
";LosslessStringConvertible;true;init(_:);;;Argument[0];ReturnValue;taint",
127130
]
128131
}

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -657,10 +657,10 @@ func testAppendingFormat() {
657657
sink(arg: s2.appendingFormat(source2(), "", 0)) // $ tainted=657
658658

659659
var s3 = ""
660-
sink(arg: s3.appendingFormat("%s %i", source2(), 0)) // $ MISSING: tainted=660
660+
sink(arg: s3.appendingFormat("%s %i", source2(), 0)) // $ tainted=660
661661

662662
var s4 = ""
663-
sink(arg: s4.appendingFormat("%s %i", "", source())) // $ MISSING: tainted=663
663+
sink(arg: s4.appendingFormat("%s %i", "", source())) // $ tainted=663
664664
}
665665

666666
func sourceUInt8() -> UInt8 { return 0 }
@@ -669,7 +669,7 @@ func testDecodeCString() {
669669
var input : [UInt8] = [1, 2, 3, sourceUInt8()]
670670

671671
let (str1, repaired1) = String.decodeCString(input, as: UTF8.self)!
672-
sink(arg: str1) // $ MISSING: tainted=669
672+
sink(arg: str1) // $ tainted=669
673673
sink(arg: repaired1)
674674

675675
input.withUnsafeBufferPointer({
@@ -680,10 +680,10 @@ func testDecodeCString() {
680680
})
681681

682682
let (str3, repaired3) = String.decodeCString(source2(), as: UTF8.self)!
683-
sink(arg: str3) // $ MISSING: tainted=682
683+
sink(arg: str3) // $ tainted=682
684684
sink(arg: repaired3)
685685

686686
let (str4, repaired4) = String.decodeCString(&input, as: UTF8.self)!
687-
sink(arg: str4) // $ MISSING: tainted=669
687+
sink(arg: str4) // $ tainted=669
688688
sink(arg: repaired4)
689689
}

0 commit comments

Comments
 (0)