summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_cert.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/ssl_cert.c')
-rw-r--r--src/lib/libssl/ssl_cert.c34
1 files changed, 12 insertions, 22 deletions
diff --git a/src/lib/libssl/ssl_cert.c b/src/lib/libssl/ssl_cert.c
index 4c3af75869..44efb64dea 100644
--- a/src/lib/libssl/ssl_cert.c
+++ b/src/lib/libssl/ssl_cert.c
@@ -299,18 +299,14 @@ ssl_cert_dup(CERT *cert)
299 return (ret); 299 return (ret);
300 300
301err: 301err:
302 if (ret->rsa_tmp != NULL) 302 RSA_free(ret->rsa_tmp);
303 RSA_free(ret->rsa_tmp); 303 DH_free(ret->dh_tmp);
304 if (ret->dh_tmp != NULL) 304 EC_KEY_free(ret->ecdh_tmp);
305 DH_free(ret->dh_tmp);
306 if (ret->ecdh_tmp != NULL)
307 EC_KEY_free(ret->ecdh_tmp);
308 305
309 for (i = 0; i < SSL_PKEY_NUM; i++) { 306 for (i = 0; i < SSL_PKEY_NUM; i++) {
310 if (ret->pkeys[i].x509 != NULL) 307 if (ret->pkeys[i].x509 != NULL)
311 X509_free(ret->pkeys[i].x509); 308 X509_free(ret->pkeys[i].x509);
312 if (ret->pkeys[i].privatekey != NULL) 309 EVP_PKEY_free(ret->pkeys[i].privatekey);
313 EVP_PKEY_free(ret->pkeys[i].privatekey);
314 } 310 }
315 311
316 return NULL; 312 return NULL;
@@ -329,19 +325,16 @@ ssl_cert_free(CERT *c)
329 if (i > 0) 325 if (i > 0)
330 return; 326 return;
331 327
332 if (c->rsa_tmp) 328 RSA_free(c->rsa_tmp);
333 RSA_free(c->rsa_tmp); 329 DH_free(c->dh_tmp);
334 if (c->dh_tmp) 330 EC_KEY_free(c->ecdh_tmp);
335 DH_free(c->dh_tmp);
336 if (c->ecdh_tmp)
337 EC_KEY_free(c->ecdh_tmp);
338 331
339 for (i = 0; i < SSL_PKEY_NUM; i++) { 332 for (i = 0; i < SSL_PKEY_NUM; i++) {
340 if (c->pkeys[i].x509 != NULL) 333 if (c->pkeys[i].x509 != NULL)
341 X509_free(c->pkeys[i].x509); 334 X509_free(c->pkeys[i].x509);
342 if (c->pkeys[i].privatekey != NULL) 335 EVP_PKEY_free(c->pkeys[i].privatekey);
343 EVP_PKEY_free(c->pkeys[i].privatekey);
344 } 336 }
337
345 free(c); 338 free(c);
346} 339}
347 340
@@ -408,12 +401,9 @@ ssl_sess_cert_free(SESS_CERT *sc)
408 X509_free(sc->peer_pkeys[i].x509); 401 X509_free(sc->peer_pkeys[i].x509);
409 } 402 }
410 403
411 if (sc->peer_rsa_tmp != NULL) 404 RSA_free(sc->peer_rsa_tmp);
412 RSA_free(sc->peer_rsa_tmp); 405 DH_free(sc->peer_dh_tmp);
413 if (sc->peer_dh_tmp != NULL) 406 EC_KEY_free(sc->peer_ecdh_tmp);
414 DH_free(sc->peer_dh_tmp);
415 if (sc->peer_ecdh_tmp != NULL)
416 EC_KEY_free(sc->peer_ecdh_tmp);
417 407
418 free(sc); 408 free(sc);
419} 409}