diff options
Diffstat (limited to 'src/lib/libssl/s3_clnt.c')
-rw-r--r-- | src/lib/libssl/s3_clnt.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c index 863a05adb3..ffbd83b060 100644 --- a/src/lib/libssl/s3_clnt.c +++ b/src/lib/libssl/s3_clnt.c | |||
@@ -1292,8 +1292,7 @@ ssl3_get_key_exchange(SSL *s) | |||
1292 | */ | 1292 | */ |
1293 | if (s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK) { | 1293 | if (s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK) { |
1294 | s->session->sess_cert = ssl_sess_cert_new(); | 1294 | s->session->sess_cert = ssl_sess_cert_new(); |
1295 | if (s->ctx->psk_identity_hint) | 1295 | free(s->ctx->psk_identity_hint); |
1296 | free(s->ctx->psk_identity_hint); | ||
1297 | s->ctx->psk_identity_hint = NULL; | 1296 | s->ctx->psk_identity_hint = NULL; |
1298 | } | 1297 | } |
1299 | #endif | 1298 | #endif |
@@ -1360,8 +1359,7 @@ ssl3_get_key_exchange(SSL *s) | |||
1360 | */ | 1359 | */ |
1361 | memcpy(tmp_id_hint, p, i); | 1360 | memcpy(tmp_id_hint, p, i); |
1362 | memset(tmp_id_hint + i, 0, PSK_MAX_IDENTITY_LEN + 1 - i); | 1361 | memset(tmp_id_hint + i, 0, PSK_MAX_IDENTITY_LEN + 1 - i); |
1363 | if (s->ctx->psk_identity_hint != NULL) | 1362 | free(s->ctx->psk_identity_hint); |
1364 | free(s->ctx->psk_identity_hint); | ||
1365 | s->ctx->psk_identity_hint = BUF_strdup(tmp_id_hint); | 1363 | s->ctx->psk_identity_hint = BUF_strdup(tmp_id_hint); |
1366 | if (s->ctx->psk_identity_hint == NULL) { | 1364 | if (s->ctx->psk_identity_hint == NULL) { |
1367 | SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, | 1365 | SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, |
@@ -1952,10 +1950,8 @@ ssl3_get_new_session_ticket(SSL *s) | |||
1952 | SSL_R_LENGTH_MISMATCH); | 1950 | SSL_R_LENGTH_MISMATCH); |
1953 | goto f_err; | 1951 | goto f_err; |
1954 | } | 1952 | } |
1955 | if (s->session->tlsext_tick) { | 1953 | free(s->session->tlsext_tick); |
1956 | free(s->session->tlsext_tick); | 1954 | s->session->tlsext_ticklen = 0; |
1957 | s->session->tlsext_ticklen = 0; | ||
1958 | } | ||
1959 | s->session->tlsext_tick = malloc(ticklen); | 1955 | s->session->tlsext_tick = malloc(ticklen); |
1960 | if (!s->session->tlsext_tick) { | 1956 | if (!s->session->tlsext_tick) { |
1961 | SSLerr(SSL_F_SSL3_GET_NEW_SESSION_TICKET, | 1957 | SSLerr(SSL_F_SSL3_GET_NEW_SESSION_TICKET, |
@@ -2024,8 +2020,7 @@ ssl3_get_cert_status(SSL *s) | |||
2024 | SSL_R_LENGTH_MISMATCH); | 2020 | SSL_R_LENGTH_MISMATCH); |
2025 | goto f_err; | 2021 | goto f_err; |
2026 | } | 2022 | } |
2027 | if (s->tlsext_ocsp_resp) | 2023 | free(s->tlsext_ocsp_resp); |
2028 | free(s->tlsext_ocsp_resp); | ||
2029 | s->tlsext_ocsp_resp = BUF_memdup(p, resplen); | 2024 | s->tlsext_ocsp_resp = BUF_memdup(p, resplen); |
2030 | if (!s->tlsext_ocsp_resp) { | 2025 | if (!s->tlsext_ocsp_resp) { |
2031 | al = SSL_AD_INTERNAL_ERROR; | 2026 | al = SSL_AD_INTERNAL_ERROR; |
@@ -2399,8 +2394,7 @@ ssl3_send_client_key_exchange(SSL *s) | |||
2399 | 2394 | ||
2400 | /* Free allocated memory */ | 2395 | /* Free allocated memory */ |
2401 | BN_CTX_free(bn_ctx); | 2396 | BN_CTX_free(bn_ctx); |
2402 | if (encodedPoint != NULL) | 2397 | free(encodedPoint); |
2403 | free(encodedPoint); | ||
2404 | if (clnt_ecdh != NULL) | 2398 | if (clnt_ecdh != NULL) |
2405 | EC_KEY_free(clnt_ecdh); | 2399 | EC_KEY_free(clnt_ecdh); |
2406 | EVP_PKEY_free(srvr_pub_pkey); | 2400 | EVP_PKEY_free(srvr_pub_pkey); |
@@ -2551,8 +2545,7 @@ ssl3_send_client_key_exchange(SSL *s) | |||
2551 | t += psk_len; | 2545 | t += psk_len; |
2552 | s2n(psk_len, t); | 2546 | s2n(psk_len, t); |
2553 | 2547 | ||
2554 | if (s->session->psk_identity_hint != NULL) | 2548 | free(s->session->psk_identity_hint); |
2555 | free(s->session->psk_identity_hint); | ||
2556 | s->session->psk_identity_hint = | 2549 | s->session->psk_identity_hint = |
2557 | BUF_strdup(s->ctx->psk_identity_hint); | 2550 | BUF_strdup(s->ctx->psk_identity_hint); |
2558 | if (s->ctx->psk_identity_hint != NULL && | 2551 | if (s->ctx->psk_identity_hint != NULL && |
@@ -2562,8 +2555,7 @@ ssl3_send_client_key_exchange(SSL *s) | |||
2562 | goto psk_err; | 2555 | goto psk_err; |
2563 | } | 2556 | } |
2564 | 2557 | ||
2565 | if (s->session->psk_identity != NULL) | 2558 | free(s->session->psk_identity); |
2566 | free(s->session->psk_identity); | ||
2567 | s->session->psk_identity = BUF_strdup(identity); | 2559 | s->session->psk_identity = BUF_strdup(identity); |
2568 | if (s->session->psk_identity == NULL) { | 2560 | if (s->session->psk_identity == NULL) { |
2569 | SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, | 2561 | SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, |
@@ -2613,8 +2605,7 @@ ssl3_send_client_key_exchange(SSL *s) | |||
2613 | err: | 2605 | err: |
2614 | #ifndef OPENSSL_NO_ECDH | 2606 | #ifndef OPENSSL_NO_ECDH |
2615 | BN_CTX_free(bn_ctx); | 2607 | BN_CTX_free(bn_ctx); |
2616 | if (encodedPoint != NULL) | 2608 | free(encodedPoint); |
2617 | free(encodedPoint); | ||
2618 | if (clnt_ecdh != NULL) | 2609 | if (clnt_ecdh != NULL) |
2619 | EC_KEY_free(clnt_ecdh); | 2610 | EC_KEY_free(clnt_ecdh); |
2620 | EVP_PKEY_free(srvr_pub_pkey); | 2611 | EVP_PKEY_free(srvr_pub_pkey); |