summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/s3_clnt.c25
-rw-r--r--src/lib/libssl/src/ssl/s3_clnt.c25
2 files changed, 24 insertions, 26 deletions
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c
index 60a17ce11b..2b538f21b4 100644
--- a/src/lib/libssl/s3_clnt.c
+++ b/src/lib/libssl/s3_clnt.c
@@ -1136,7 +1136,6 @@ ssl3_get_server_certificate(SSL *s)
1136 sc = ssl_sess_cert_new(); 1136 sc = ssl_sess_cert_new();
1137 if (sc == NULL) 1137 if (sc == NULL)
1138 goto err; 1138 goto err;
1139
1140 if (s->session->sess_cert) 1139 if (s->session->sess_cert)
1141 ssl_sess_cert_free(s->session->sess_cert); 1140 ssl_sess_cert_free(s->session->sess_cert);
1142 s->session->sess_cert = sc; 1141 s->session->sess_cert = sc;
@@ -1252,6 +1251,8 @@ ssl3_get_key_exchange(SSL *s)
1252 */ 1251 */
1253 if (s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK) { 1252 if (s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK) {
1254 s->session->sess_cert = ssl_sess_cert_new(); 1253 s->session->sess_cert = ssl_sess_cert_new();
1254 if (s->session->sess_cert == NULL)
1255 goto err;
1255 free(s->ctx->psk_identity_hint); 1256 free(s->ctx->psk_identity_hint);
1256 s->ctx->psk_identity_hint = NULL; 1257 s->ctx->psk_identity_hint = NULL;
1257 } 1258 }
@@ -1262,20 +1263,18 @@ ssl3_get_key_exchange(SSL *s)
1262 1263
1263 param = p = (unsigned char *)s->init_msg; 1264 param = p = (unsigned char *)s->init_msg;
1264 if (s->session->sess_cert != NULL) { 1265 if (s->session->sess_cert != NULL) {
1265 if (s->session->sess_cert->peer_rsa_tmp != NULL) { 1266 RSA_free(s->session->sess_cert->peer_rsa_tmp);
1266 RSA_free(s->session->sess_cert->peer_rsa_tmp); 1267 s->session->sess_cert->peer_rsa_tmp = NULL;
1267 s->session->sess_cert->peer_rsa_tmp = NULL; 1268
1268 } 1269 DH_free(s->session->sess_cert->peer_dh_tmp);
1269 if (s->session->sess_cert->peer_dh_tmp) { 1270 s->session->sess_cert->peer_dh_tmp = NULL;
1270 DH_free(s->session->sess_cert->peer_dh_tmp); 1271
1271 s->session->sess_cert->peer_dh_tmp = NULL; 1272 EC_KEY_free(s->session->sess_cert->peer_ecdh_tmp);
1272 } 1273 s->session->sess_cert->peer_ecdh_tmp = NULL;
1273 if (s->session->sess_cert->peer_ecdh_tmp) {
1274 EC_KEY_free(s->session->sess_cert->peer_ecdh_tmp);
1275 s->session->sess_cert->peer_ecdh_tmp = NULL;
1276 }
1277 } else { 1274 } else {
1278 s->session->sess_cert = ssl_sess_cert_new(); 1275 s->session->sess_cert = ssl_sess_cert_new();
1276 if (s->session->sess_cert == NULL)
1277 goto err;
1279 } 1278 }
1280 1279
1281 param_len = 0; 1280 param_len = 0;
diff --git a/src/lib/libssl/src/ssl/s3_clnt.c b/src/lib/libssl/src/ssl/s3_clnt.c
index 60a17ce11b..2b538f21b4 100644
--- a/src/lib/libssl/src/ssl/s3_clnt.c
+++ b/src/lib/libssl/src/ssl/s3_clnt.c
@@ -1136,7 +1136,6 @@ ssl3_get_server_certificate(SSL *s)
1136 sc = ssl_sess_cert_new(); 1136 sc = ssl_sess_cert_new();
1137 if (sc == NULL) 1137 if (sc == NULL)
1138 goto err; 1138 goto err;
1139
1140 if (s->session->sess_cert) 1139 if (s->session->sess_cert)
1141 ssl_sess_cert_free(s->session->sess_cert); 1140 ssl_sess_cert_free(s->session->sess_cert);
1142 s->session->sess_cert = sc; 1141 s->session->sess_cert = sc;
@@ -1252,6 +1251,8 @@ ssl3_get_key_exchange(SSL *s)
1252 */ 1251 */
1253 if (s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK) { 1252 if (s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK) {
1254 s->session->sess_cert = ssl_sess_cert_new(); 1253 s->session->sess_cert = ssl_sess_cert_new();
1254 if (s->session->sess_cert == NULL)
1255 goto err;
1255 free(s->ctx->psk_identity_hint); 1256 free(s->ctx->psk_identity_hint);
1256 s->ctx->psk_identity_hint = NULL; 1257 s->ctx->psk_identity_hint = NULL;
1257 } 1258 }
@@ -1262,20 +1263,18 @@ ssl3_get_key_exchange(SSL *s)
1262 1263
1263 param = p = (unsigned char *)s->init_msg; 1264 param = p = (unsigned char *)s->init_msg;
1264 if (s->session->sess_cert != NULL) { 1265 if (s->session->sess_cert != NULL) {
1265 if (s->session->sess_cert->peer_rsa_tmp != NULL) { 1266 RSA_free(s->session->sess_cert->peer_rsa_tmp);
1266 RSA_free(s->session->sess_cert->peer_rsa_tmp); 1267 s->session->sess_cert->peer_rsa_tmp = NULL;
1267 s->session->sess_cert->peer_rsa_tmp = NULL; 1268
1268 } 1269 DH_free(s->session->sess_cert->peer_dh_tmp);
1269 if (s->session->sess_cert->peer_dh_tmp) { 1270 s->session->sess_cert->peer_dh_tmp = NULL;
1270 DH_free(s->session->sess_cert->peer_dh_tmp); 1271
1271 s->session->sess_cert->peer_dh_tmp = NULL; 1272 EC_KEY_free(s->session->sess_cert->peer_ecdh_tmp);
1272 } 1273 s->session->sess_cert->peer_ecdh_tmp = NULL;
1273 if (s->session->sess_cert->peer_ecdh_tmp) {
1274 EC_KEY_free(s->session->sess_cert->peer_ecdh_tmp);
1275 s->session->sess_cert->peer_ecdh_tmp = NULL;
1276 }
1277 } else { 1274 } else {
1278 s->session->sess_cert = ssl_sess_cert_new(); 1275 s->session->sess_cert = ssl_sess_cert_new();
1276 if (s->session->sess_cert == NULL)
1277 goto err;
1279 } 1278 }
1280 1279
1281 param_len = 0; 1280 param_len = 0;