@@ -52,7 +52,7 @@ class NSString : NSObject, NSCopying, NSMutableCopying {
52
52
func copy( with zone: NSZone ? = nil ) -> Any { return 0 }
53
53
func mutableCopy( with zone: NSZone ? = nil ) -> Any { return 0 }
54
54
55
- class func localizedStringWithFormat( _ format: NSString , _ args: CVarArg ) -> Self { return ( nil as Self ? ) ! }
55
+ class func localizedStringWithFormat( _ format: NSString , _ args: CVarArg ... ) -> Self { return ( nil as Self ? ) ! }
56
56
class func path( withComponents components: [ String ] ) -> String { return " " }
57
57
class func string( withCString bytes: UnsafePointer < CChar > ) -> Any ? { return nil }
58
58
class func string( withCString bytes: UnsafePointer < CChar > , length: Int ) -> Any ? { return nil }
@@ -185,7 +185,7 @@ func sourceUnsafeMutableRawPointer() -> UnsafeMutableRawPointer { return (nil as
185
185
func sourceCString( ) -> UnsafePointer < CChar > { return ( nil as UnsafePointer < CChar > ? ) ! }
186
186
func sourceData( ) -> Data { return Data ( 0 ) }
187
187
func sourceStringArray( ) -> [ String ] { return [ ] }
188
-
188
+ func sourceInt ( ) -> Int { return 0 }
189
189
func sink( arg: Any ) { }
190
190
191
191
func taintThroughInterpolatedStrings( ) {
@@ -244,8 +244,8 @@ func taintThroughInterpolatedStrings() {
244
244
245
245
let harmless = NSString ( string: " harmless " )
246
246
let myRange = NSRange ( location: 0 , length: 128 )
247
-
248
- sink ( arg: NSString . localizedStringWithFormat ( sourceNSString ( ) , ( nil as CVarArg ? ) ! ) ) // $ tainted=248
247
+ sink ( arg : NSString . localizedStringWithFormat ( NSString ( string : " %i %s %i " ) , 1 , sourceInt ( ) , 3 ) ) // $ MISSING: tainted=247
248
+ sink ( arg: NSString . localizedStringWithFormat ( sourceNSString ( ) , 1 , 2 , 3 ) ) // $ tainted=248
249
249
sink ( arg: sourceNSString ( ) . character ( at: 0 ) ) // $ tainted=249
250
250
sink ( arg: sourceNSString ( ) . cString ( using: 0 ) !) // $ tainted=250
251
251
sink ( arg: sourceNSString ( ) . cString ( ) ) // $ tainted=251
0 commit comments