revocation: Fix memory leak if fetching CRL/OCSP fails

We might get a 404 error page back.
This commit is contained in:
Tobias Brunner
2018-05-22 09:50:47 +02:00
parent cae43b890a
commit 0cf3549675
@@ -59,7 +59,7 @@ static certificate_t *fetch_ocsp(char *url, certificate_t *subject,
certificate_t *issuer) certificate_t *issuer)
{ {
certificate_t *request, *response; certificate_t *request, *response;
chunk_t send, receive; chunk_t send, receive = chunk_empty;
/* TODO: requestor name, signature */ /* TODO: requestor name, signature */
request = lib->creds->create(lib->creds, request = lib->creds->create(lib->creds,
@@ -87,6 +87,7 @@ static certificate_t *fetch_ocsp(char *url, certificate_t *subject,
FETCH_END) != SUCCESS) FETCH_END) != SUCCESS)
{ {
DBG1(DBG_CFG, "ocsp request to %s failed", url); DBG1(DBG_CFG, "ocsp request to %s failed", url);
chunk_free(&receive);
chunk_free(&send); chunk_free(&send);
return NULL; return NULL;
} }
@@ -369,12 +370,13 @@ static cert_validation_t check_ocsp(x509_t *subject, x509_t *issuer,
static certificate_t* fetch_crl(char *url) static certificate_t* fetch_crl(char *url)
{ {
certificate_t *crl; certificate_t *crl;
chunk_t chunk; chunk_t chunk = chunk_empty;
DBG1(DBG_CFG, " fetching crl from '%s' ...", url); DBG1(DBG_CFG, " fetching crl from '%s' ...", url);
if (lib->fetcher->fetch(lib->fetcher, url, &chunk, FETCH_END) != SUCCESS) if (lib->fetcher->fetch(lib->fetcher, url, &chunk, FETCH_END) != SUCCESS)
{ {
DBG1(DBG_CFG, "crl fetching failed"); DBG1(DBG_CFG, "crl fetching failed");
chunk_free(&chunk);
return NULL; return NULL;
} }
crl = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509_CRL, crl = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509_CRL,