提交 a784665e 编写于 作者: D Dr. Stephen Henson

Free and cleanse pms on error

Reviewed-by: NMatt Caswell <matt@openssl.org>
上级 a3f7ff2b
...@@ -4966,8 +4966,10 @@ int ssl_generate_master_secret(SSL *s, unsigned char *pms, size_t pmslen, ...@@ -4966,8 +4966,10 @@ int ssl_generate_master_secret(SSL *s, unsigned char *pms, size_t pmslen,
pskpmslen = 4 + pmslen + psklen; pskpmslen = 4 + pmslen + psklen;
pskpms = OPENSSL_malloc(pskpmslen); pskpms = OPENSSL_malloc(pskpmslen);
if (pskpms == NULL) if (pskpms == NULL) {
return 0; s->session->master_key_length = 0;
goto err;
}
t = pskpms; t = pskpms;
s2n(pmslen, t); s2n(pmslen, t);
if (alg_k & SSL_kPSK) if (alg_k & SSL_kPSK)
...@@ -4991,6 +4993,8 @@ int ssl_generate_master_secret(SSL *s, unsigned char *pms, size_t pmslen, ...@@ -4991,6 +4993,8 @@ int ssl_generate_master_secret(SSL *s, unsigned char *pms, size_t pmslen,
s->method->ssl3_enc->generate_master_secret(s, s->method->ssl3_enc->generate_master_secret(s,
s->session->master_key, s->session->master_key,
pms, pmslen); pms, pmslen);
err:
if (pms) { if (pms) {
if (free_pms) if (free_pms)
OPENSSL_clear_free(pms, pmslen); OPENSSL_clear_free(pms, pmslen);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册