mirror of
https://github.com/QuasarApp/openssl.git
synced 2025-04-29 03:04:37 +00:00
fix a memory leak in ssl3_generate_key_block fix the error handling in ssl3_change_cipher_state
Reviewed-by: Kurt Roeckx <kurt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2164)
This commit is contained in:
parent
57a19206b5
commit
a6fd7c1dbe
@ -61,10 +61,10 @@ static int ssl3_generate_key_block(SSL *s, unsigned char *km, int num)
|
|||||||
EVP_MD_CTX_set_flags(m5, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
|
EVP_MD_CTX_set_flags(m5, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
|
||||||
for (i = 0; (int)i < num; i += MD5_DIGEST_LENGTH) {
|
for (i = 0; (int)i < num; i += MD5_DIGEST_LENGTH) {
|
||||||
k++;
|
k++;
|
||||||
if (k > sizeof buf) {
|
if (k > sizeof(buf)) {
|
||||||
/* bug: 'buf' is too small for this ciphersuite */
|
/* bug: 'buf' is too small for this ciphersuite */
|
||||||
SSLerr(SSL_F_SSL3_GENERATE_KEY_BLOCK, ERR_R_INTERNAL_ERROR);
|
SSLerr(SSL_F_SSL3_GENERATE_KEY_BLOCK, ERR_R_INTERNAL_ERROR);
|
||||||
return 0;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j = 0; j < k; j++)
|
for (j = 0; j < k; j++)
|
||||||
@ -227,7 +227,8 @@ int ssl3_change_cipher_state(SSL *s, int which)
|
|||||||
|
|
||||||
memcpy(mac_secret, ms, i);
|
memcpy(mac_secret, ms, i);
|
||||||
|
|
||||||
EVP_CipherInit_ex(dd, c, NULL, key, iv, (which & SSL3_CC_WRITE));
|
if (!EVP_CipherInit_ex(dd, c, NULL, key, iv, (which & SSL3_CC_WRITE)))
|
||||||
|
goto err2;
|
||||||
|
|
||||||
#ifdef OPENSSL_SSL_TRACE_CRYPTO
|
#ifdef OPENSSL_SSL_TRACE_CRYPTO
|
||||||
if (s->msg_callback) {
|
if (s->msg_callback) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user