crd->c_cert = NULL;
}
if (crd->c_cert_ext) {
- X509_EXTENSION_free(crd->c_cert_ext);
+ sk_X509_EXTENSION_pop_free(crd->c_cert_ext, X509_EXTENSION_free);
crd->c_cert_ext = NULL;
}
if (crd->c_cert_chain) {
if (!cred)
return set_error(cc, EINVAL, POSIX_ERROR, "Cred. handler"
- " not initialized" );
-
- if (crd->c_cert_ext) {
- X509_EXTENSION_free(crd->c_cert_ext);
- crd->c_cert_ext = NULL;
- }
-
- crd->c_cert_ext = X509_EXTENSION_dup(cert_ext);
+ " not initialized" );
+
+ if (!crd->c_cert_ext)
+ crd->c_cert_ext = sk_X509_EXTENSION_new_null();
+ sk_X509_EXTENSION_push(crd->c_cert_ext, cert_ext);
return 0;
}