certificates: Use shared destructor for x509_cdp_t

This commit is contained in:
Tobias Brunner
2017-09-18 10:54:19 +02:00
parent e7276f78aa
commit 4e7b7db62f
6 changed files with 22 additions and 46 deletions
@@ -25,3 +25,12 @@ ENUM_NEXT(x509_flag_names, X509_ANY, X509_ANY, X509_OCSP_SIGNER,
"ANY"); "ANY");
ENUM_END(x509_flag_names, X509_ANY); ENUM_END(x509_flag_names, X509_ANY);
/*
* Described in header
*/
void x509_cdp_destroy(x509_cdp_t *this)
{
free(this->uri);
DESTROY_IF(this->issuer);
free(this);
}
@@ -210,8 +210,11 @@ struct x509_t {
* @return enumerator over x509_policy_mapping * @return enumerator over x509_policy_mapping
*/ */
enumerator_t* (*create_policy_mapping_enumerator)(x509_t *this); enumerator_t* (*create_policy_mapping_enumerator)(x509_t *this);
}; };
/**
* Destroy an x509_cdp_t instance.
*/
void x509_cdp_destroy(x509_cdp_t *this);
#endif /** X509_H_ @}*/ #endif /** X509_H_ @}*/
@@ -188,16 +188,6 @@ struct private_openssl_x509_t {
refcount_t ref; refcount_t ref;
}; };
/**
* Destroy a CRL URI struct
*/
static void crl_uri_destroy(x509_cdp_t *this)
{
free(this->uri);
DESTROY_IF(this->issuer);
free(this);
}
/** /**
* Convert a GeneralName to an identification_t. * Convert a GeneralName to an identification_t.
*/ */
@@ -549,7 +539,8 @@ METHOD(certificate_t, destroy, void,
offsetof(identification_t, destroy)); offsetof(identification_t, destroy));
this->issuerAltNames->destroy_offset(this->issuerAltNames, this->issuerAltNames->destroy_offset(this->issuerAltNames,
offsetof(identification_t, destroy)); offsetof(identification_t, destroy));
this->crl_uris->destroy_function(this->crl_uris, (void*)crl_uri_destroy); this->crl_uris->destroy_function(this->crl_uris,
(void*)x509_cdp_destroy);
this->ocsp_uris->destroy_function(this->ocsp_uris, free); this->ocsp_uris->destroy_function(this->ocsp_uris, free);
this->ipAddrBlocks->destroy_offset(this->ipAddrBlocks, this->ipAddrBlocks->destroy_offset(this->ipAddrBlocks,
offsetof(traffic_selector_t, destroy)); offsetof(traffic_selector_t, destroy));
+2 -11
View File
@@ -240,16 +240,6 @@ static bool gn_to_string(identification_t *id, char **uri)
return len > 0; return len > 0;
} }
/**
* Destroy a CertificateDistributionPoint
*/
static void crl_uri_destroy(x509_cdp_t *this)
{
free(this->uri);
DESTROY_IF(this->issuer);
free(this);
}
/** /**
* Destroy a CertificatePolicy * Destroy a CertificatePolicy
*/ */
@@ -1920,7 +1910,8 @@ METHOD(certificate_t, destroy, void,
{ {
this->subjectAltNames->destroy_offset(this->subjectAltNames, this->subjectAltNames->destroy_offset(this->subjectAltNames,
offsetof(identification_t, destroy)); offsetof(identification_t, destroy));
this->crl_uris->destroy_function(this->crl_uris, (void*)crl_uri_destroy); this->crl_uris->destroy_function(this->crl_uris,
(void*)x509_cdp_destroy);
this->ocsp_uris->destroy_function(this->ocsp_uris, free); this->ocsp_uris->destroy_function(this->ocsp_uris, free);
this->ipAddrBlocks->destroy_offset(this->ipAddrBlocks, this->ipAddrBlocks->destroy_offset(this->ipAddrBlocks,
offsetof(traffic_selector_t, destroy)); offsetof(traffic_selector_t, destroy));
+2 -11
View File
@@ -585,23 +585,14 @@ static void revoked_destroy(revoked_t *revoked)
free(revoked); free(revoked);
} }
/**
* Destroy a CDP entry
*/
static void cdp_destroy(x509_cdp_t *this)
{
free(this->uri);
DESTROY_IF(this->issuer);
free(this);
}
METHOD(certificate_t, destroy, void, METHOD(certificate_t, destroy, void,
private_x509_crl_t *this) private_x509_crl_t *this)
{ {
if (ref_put(&this->ref)) if (ref_put(&this->ref))
{ {
this->revoked->destroy_function(this->revoked, (void*)revoked_destroy); this->revoked->destroy_function(this->revoked, (void*)revoked_destroy);
this->crl_uris->destroy_function(this->crl_uris, (void*)cdp_destroy); this->crl_uris->destroy_function(this->crl_uris,
(void*)x509_cdp_destroy);
DESTROY_IF(this->issuer); DESTROY_IF(this->issuer);
free(this->authKeyIdentifier.ptr); free(this->authKeyIdentifier.ptr);
free(this->encoding.ptr); free(this->encoding.ptr);
+2 -11
View File
@@ -108,15 +108,6 @@ static int read_serial(char *file, char *buf, int buflen)
return serial.len; return serial.len;
} }
/**
* Destroy a CDP
*/
static void cdp_destroy(x509_cdp_t *this)
{
free(this->uri);
free(this);
}
/** /**
* Sign a CRL * Sign a CRL
*/ */
@@ -439,7 +430,7 @@ error:
free(encoding.ptr); free(encoding.ptr);
free(baseCrlNumber.ptr); free(baseCrlNumber.ptr);
list->destroy_function(list, (void*)revoked_destroy); list->destroy_function(list, (void*)revoked_destroy);
cdps->destroy_function(cdps, (void*)cdp_destroy); cdps->destroy_function(cdps, (void*)x509_cdp_destroy);
if (error) if (error)
{ {
fprintf(stderr, "%s\n", error); fprintf(stderr, "%s\n", error);
@@ -449,7 +440,7 @@ error:
usage: usage:
list->destroy_function(list, (void*)revoked_destroy); list->destroy_function(list, (void*)revoked_destroy);
cdps->destroy_function(cdps, (void*)cdp_destroy); cdps->destroy_function(cdps, (void*)x509_cdp_destroy);
return command_usage(error); return command_usage(error);
} }