from a P12 file
This could've happened if SecPKCS12Import() returned noErr _and_ no
identity.
/* Here we go: */
status = SecPKCS12Import(pkcs_data, options, &items);
- if(status == noErr) {
+ if(status == noErr && items && CFArrayGetCount(items)) {
CFDictionaryRef identity_and_trust = CFArrayGetValueAtIndex(items, 0L);
const void *temp_identity = CFDictionaryGetValue(identity_and_trust,
kSecImportItemIdentity);
/* Retain the identity; we don't care about any other data... */
CFRetain(temp_identity);
*out_cert_and_key = (SecIdentityRef)temp_identity;
- CFRelease(items);
}
+
+ if(items)
+ CFRelease(items);
CFRelease(options);
CFRelease(pkcs_data);
}