@@ -52,7 +52,7 @@ class NSString : NSObject, NSCopying, NSMutableCopying {
5252 func copy( with zone: NSZone ? = nil ) -> Any { return 0 }
5353 func mutableCopy( with zone: NSZone ? = nil ) -> Any { return 0 }
5454
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 ? ) ! }
5656 class func path( withComponents components: [ String ] ) -> String { return " " }
5757 class func string( withCString bytes: UnsafePointer < CChar > ) -> Any ? { return nil }
5858 class func string( withCString bytes: UnsafePointer < CChar > , length: Int ) -> Any ? { return nil }
@@ -185,7 +185,7 @@ func sourceUnsafeMutableRawPointer() -> UnsafeMutableRawPointer { return (nil as
185185func sourceCString( ) -> UnsafePointer < CChar > { return ( nil as UnsafePointer < CChar > ? ) ! }
186186func sourceData( ) -> Data { return Data ( 0 ) }
187187func sourceStringArray( ) -> [ String ] { return [ ] }
188-
188+ func sourceInt ( ) -> Int { return 0 }
189189func sink( arg: Any ) { }
190190
191191func taintThroughInterpolatedStrings( ) {
@@ -244,8 +244,8 @@ func taintThroughInterpolatedStrings() {
244244
245245 let harmless = NSString ( string: " harmless " )
246246 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
249249 sink ( arg: sourceNSString ( ) . character ( at: 0 ) ) // $ tainted=249
250250 sink ( arg: sourceNSString ( ) . cString ( using: 0 ) !) // $ tainted=250
251251 sink ( arg: sourceNSString ( ) . cString ( ) ) // $ tainted=251
0 commit comments