@@ -227,29 +227,27 @@ impl<'a> Iterator for NameIterator<'a> {
227
227
type Item = Result < GeneralName < ' a > , Error > ;
228
228
229
229
fn next ( & mut self ) -> Option < Self :: Item > {
230
- if let Some ( subject_alt_name) = & mut self . subject_alt_name {
231
- // https://bugzilla.mozilla.org/show_bug.cgi?id=1143085: An empty
232
- // subjectAltName is not legal, but some certificates have an empty
233
- // subjectAltName. Since we don't support CN-IDs, the certificate
234
- // will be rejected either way, but checking `at_end` before
235
- // attempting to parse the first entry allows us to return a better
236
- // error code.
237
-
238
- if !subject_alt_name. at_end ( ) {
239
- let err = match GeneralName :: from_der ( subject_alt_name) {
240
- Ok ( name) => return Some ( Ok ( name) ) ,
241
- Err ( err) => err,
242
- } ;
243
-
244
- // Make sure we don't yield any items after this error.
245
- self . subject_alt_name = None ;
246
- return Some ( Err ( err) ) ;
247
- } else {
248
- self . subject_alt_name = None ;
249
- }
230
+ let subject_alt_name = self . subject_alt_name . as_mut ( ) ?;
231
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1143085: An empty
232
+ // subjectAltName is not legal, but some certificates have an empty
233
+ // subjectAltName. Since we don't support CN-IDs, the certificate
234
+ // will be rejected either way, but checking `at_end` before
235
+ // attempting to parse the first entry allows us to return a better
236
+ // error code.
237
+
238
+ if subject_alt_name. at_end ( ) {
239
+ self . subject_alt_name = None ;
240
+ return None ;
250
241
}
251
242
252
- None
243
+ let err = match GeneralName :: from_der ( subject_alt_name) {
244
+ Ok ( name) => return Some ( Ok ( name) ) ,
245
+ Err ( err) => err,
246
+ } ;
247
+
248
+ // Make sure we don't yield any items after this error.
249
+ self . subject_alt_name = None ;
250
+ Some ( Err ( err) )
253
251
}
254
252
}
255
253
0 commit comments