diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c index 9e73d629217be160c65eec4dffb6df092570f2c6..c7b9c2c091c1ef3568ad5448857f097443e5e39a 100644 --- a/ssl/s3_srvr.c +++ b/ssl/s3_srvr.c @@ -2301,6 +2301,7 @@ int ssl3_get_client_key_exchange(SSL *s) if (i <= 0) { SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,ERR_R_DH_LIB); + BN_clear_free(pub); goto err; } diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c index e38bd9f0baac7945cf732f56048af588a5463867..3430ea1a20d4f895116e3cef397a58e5276c2541 100644 --- a/ssl/t1_lib.c +++ b/ssl/t1_lib.c @@ -1247,6 +1247,12 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in sdata = data; if (dsize > 0) { + if (s->tlsext_ocsp_exts) + { + sk_X509_EXTENSION_pop_free(s->tlsext_ocsp_exts, + X509_EXTENSION_free); + } + s->tlsext_ocsp_exts = d2i_X509_EXTENSIONS(NULL, &sdata, dsize);