@@ -90,36 +90,48 @@ func test1(password: String, passwordHash : String) {
90
90
print ( password, separator: " " , terminator: " " ) // $ MISSING: hasCleartextLogging=90
91
91
print ( " " , separator: password, terminator: " " ) // $ hasCleartextLogging=91
92
92
print ( " " , separator: " " , terminator: password) // $ hasCleartextLogging=92
93
+ print ( passwordHash) // Safe
93
94
94
- NSLog ( password) // $ hasCleartextLogging=94
95
- NSLog ( " %@ " , password as! CVarArg ) // $ MISSING: hasCleartextLogging=95
96
- NSLog ( " %@ %@ " , " " as! CVarArg , password as! CVarArg ) // $ MISSING: hasCleartextLogging=96
97
- NSLog ( " \( password) " ) // $ hasCleartextLogging=97
98
- NSLogv ( " %@ " , getVaList ( [ password as! CVarArg ] ) ) // $ MISSING: hasCleartextLogging=98
99
- NSLogv ( " %@ %@ " , getVaList ( [ " " as! CVarArg , password as! CVarArg ] ) ) // $ MISSING: hasCleartextLogging=99
95
+ NSLog ( password) // $ hasCleartextLogging=95
96
+ NSLog ( " %@ " , password as! CVarArg ) // $ MISSING: hasCleartextLogging=96
97
+ NSLog ( " %@ %@ " , " " as! CVarArg , password as! CVarArg ) // $ MISSING: hasCleartextLogging=97
98
+ NSLog ( " \( password) " ) // $ hasCleartextLogging=98
99
+ NSLogv ( " %@ " , getVaList ( [ password as! CVarArg ] ) ) // $ MISSING: hasCleartextLogging=99
100
+ NSLogv ( " %@ %@ " , getVaList ( [ " " as! CVarArg , password as! CVarArg ] ) ) // $ MISSING: hasCleartextLogging=100
101
+ NSLog ( passwordHash) // SAfe
102
+ NSLogv ( " %@ " , getVaList ( [ passwordHash as! CVarArg ] ) ) // Safe
100
103
101
104
let bankAccount : Int = 0
102
105
let log = Logger ( )
103
106
// These MISSING test cases will be fixed when we properly generate the CFG around autoclosures.
104
107
log. log ( " \( password) " ) // Safe
105
108
log. log ( " \( password, privacy: . auto) " ) // Safe
106
109
log. log ( " \( password, privacy: . private) " ) // Safe
107
- log. log ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=107
110
+ log. log ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=110
111
+ log. log ( " \( passwordHash, privacy: . public) " ) // Safe
108
112
log. log ( " \( password, privacy: . sensitive) " ) // Safe
109
- log. log ( " \( bankAccount) " ) // $ MISSING: hasCleartextLogging=109
110
- log. log ( " \( bankAccount, privacy: . auto) " ) // $ MISSING: hasCleartextLogging=110
113
+ log. log ( " \( bankAccount) " ) // $ MISSING: hasCleartextLogging=113
114
+ log. log ( " \( bankAccount, privacy: . auto) " ) // $ MISSING: hasCleartextLogging=114
111
115
log. log ( " \( bankAccount, privacy: . private) " ) // Safe
112
- log. log ( " \( bankAccount, privacy: . public) " ) // $ MISSING: hasCleartextLogging=112
116
+ log. log ( " \( bankAccount, privacy: . public) " ) // $ MISSING: hasCleartextLogging=116
113
117
log. log ( " \( bankAccount, privacy: . sensitive) " ) // Safe
114
- log. log ( level: . default, " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=114
115
- log. trace ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=115
116
- log. debug ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=116
117
- log. info ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=117
118
- log. notice ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=118
119
- log. warning ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=119
120
- log. error ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=120
121
- log. critical ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=121
122
- log. fault ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=122
118
+ log. log ( level: . default, " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=118
119
+ log. trace ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=119
120
+ log. trace ( " \( passwordHash, privacy: . public) " ) // Safe
121
+ log. debug ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=121
122
+ log. debug ( " \( passwordHash, privacy: . public) " ) // Safe
123
+ log. info ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=123
124
+ log. info ( " \( passwordHash, privacy: . public) " ) // Safe
125
+ log. notice ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=125
126
+ log. notice ( " \( passwordHash, privacy: . public) " ) // Safe
127
+ log. warning ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=127
128
+ log. warning ( " \( passwordHash, privacy: . public) " ) // Safe
129
+ log. error ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=129
130
+ log. error ( " \( passwordHash, privacy: . public) " ) // Safe
131
+ log. critical ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=131
132
+ log. critical ( " \( passwordHash, privacy: . public) " ) // Safe
133
+ log. fault ( " \( password, privacy: . public) " ) // $ MISSING: hasCleartextLogging=133
134
+ log. fault ( " \( passwordHash, privacy: . public) " ) // Safe
123
135
}
124
136
125
137
class MyClass {
@@ -133,14 +145,14 @@ func doSomething(password: String) { }
133
145
func test3( x: String ) {
134
146
// alternative evidence of sensitivity...
135
147
136
- NSLog ( x) // $ MISSING: hasCleartextLogging=137
148
+ NSLog ( x) // $ MISSING: hasCleartextLogging=148
137
149
doSomething ( password: x) ;
138
- NSLog ( x) // $ hasCleartextLogging=137
150
+ NSLog ( x) // $ hasCleartextLogging=149
139
151
140
152
let y = getPassword ( ) ;
141
- NSLog ( y) // $ hasCleartextLogging=140
153
+ NSLog ( y) // $ hasCleartextLogging=152
142
154
143
155
let z = MyClass ( )
144
156
NSLog ( z. harmless) // Safe
145
- NSLog ( z. password) // $ hasCleartextLogging=145
157
+ NSLog ( z. password) // $ hasCleartextLogging=157
146
158
}
0 commit comments