Swift: Add a test case for withMutableCharacters.

This commit is contained in:
Geoffrey White
2023-10-23 23:16:55 +01:00
parent 319b799f95
commit 4cf40ed259

View File

@@ -79,7 +79,7 @@ extension String : CVarArg {
init(platformString: UnsafePointer<CInterop.PlatformChar>) { self.init() }
func withPlatformString<Result>(_ body: (UnsafePointer<CInterop.PlatformChar>) throws -> Result) rethrows -> Result { return 0 as! Result }
mutating func withMutableCharacters<R>(_ body: (inout String) -> R) -> R { return 0 as! R }
mutating func replaceSubrange<C>(_ subrange: Range<String.Index>, with newElements: C)
@@ -687,3 +687,18 @@ func testDecodeCString() {
sink(arg: str4) // $ tainted=669
sink(arg: repaired4)
}
func taintMutableCharacters() {
var str = ""
sink(arg: str)
let rtn = str.withMutableCharacters({
chars in
sink(arg: chars)
chars.append(source2())
sink(arg: chars) // $ tainted=698
return source()
})
sink(arg: rtn) // $ MISSING: tainted=700
sink(arg: str) // $ MISSING: tainted=698
}