ensure that the EVP_CIPHER_CTX object is initialized
PR: 1490
This commit is contained in:
parent
85c6749216
commit
cc684e330b
@ -82,15 +82,18 @@ int ssl2_enc_init(SSL *s, int client)
|
|||||||
((s->enc_read_ctx=(EVP_CIPHER_CTX *)
|
((s->enc_read_ctx=(EVP_CIPHER_CTX *)
|
||||||
OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL))
|
OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
/* make sure it's intialized in case the malloc for enc_write_ctx fails
|
||||||
|
* and we exit with an error */
|
||||||
|
rs= s->enc_read_ctx;
|
||||||
|
EVP_CIPHER_CTX_init(rs);
|
||||||
|
|
||||||
if ((s->enc_write_ctx == NULL) &&
|
if ((s->enc_write_ctx == NULL) &&
|
||||||
((s->enc_write_ctx=(EVP_CIPHER_CTX *)
|
((s->enc_write_ctx=(EVP_CIPHER_CTX *)
|
||||||
OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL))
|
OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
rs= s->enc_read_ctx;
|
|
||||||
ws= s->enc_write_ctx;
|
ws= s->enc_write_ctx;
|
||||||
|
|
||||||
EVP_CIPHER_CTX_init(rs);
|
|
||||||
EVP_CIPHER_CTX_init(ws);
|
EVP_CIPHER_CTX_init(ws);
|
||||||
|
|
||||||
num=c->key_len;
|
num=c->key_len;
|
||||||
|
@ -247,6 +247,9 @@ int ssl3_change_cipher_state(SSL *s, int which)
|
|||||||
reuse_dd = 1;
|
reuse_dd = 1;
|
||||||
else if ((s->enc_read_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
|
else if ((s->enc_read_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
|
||||||
goto err;
|
goto err;
|
||||||
|
else
|
||||||
|
/* make sure it's intialized in case we exit later with an error */
|
||||||
|
EVP_CIPHER_CTX_init(s->enc_read_ctx);
|
||||||
dd= s->enc_read_ctx;
|
dd= s->enc_read_ctx;
|
||||||
s->read_hash=m;
|
s->read_hash=m;
|
||||||
#ifndef OPENSSL_NO_COMP
|
#ifndef OPENSSL_NO_COMP
|
||||||
@ -280,6 +283,9 @@ int ssl3_change_cipher_state(SSL *s, int which)
|
|||||||
reuse_dd = 1;
|
reuse_dd = 1;
|
||||||
else if ((s->enc_write_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
|
else if ((s->enc_write_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
|
||||||
goto err;
|
goto err;
|
||||||
|
else
|
||||||
|
/* make sure it's intialized in case we exit later with an error */
|
||||||
|
EVP_CIPHER_CTX_init(s->enc_write_ctx);
|
||||||
dd= s->enc_write_ctx;
|
dd= s->enc_write_ctx;
|
||||||
s->write_hash=m;
|
s->write_hash=m;
|
||||||
#ifndef OPENSSL_NO_COMP
|
#ifndef OPENSSL_NO_COMP
|
||||||
@ -305,7 +311,6 @@ int ssl3_change_cipher_state(SSL *s, int which)
|
|||||||
|
|
||||||
if (reuse_dd)
|
if (reuse_dd)
|
||||||
EVP_CIPHER_CTX_cleanup(dd);
|
EVP_CIPHER_CTX_cleanup(dd);
|
||||||
EVP_CIPHER_CTX_init(dd);
|
|
||||||
|
|
||||||
p=s->s3->tmp.key_block;
|
p=s->s3->tmp.key_block;
|
||||||
i=EVP_MD_size(m);
|
i=EVP_MD_size(m);
|
||||||
|
11
ssl/t1_enc.c
11
ssl/t1_enc.c
@ -293,6 +293,9 @@ int tls1_change_cipher_state(SSL *s, int which)
|
|||||||
reuse_dd = 1;
|
reuse_dd = 1;
|
||||||
else if ((s->enc_read_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
|
else if ((s->enc_read_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
|
||||||
goto err;
|
goto err;
|
||||||
|
else
|
||||||
|
/* make sure it's intialized in case we exit later with an error */
|
||||||
|
EVP_CIPHER_CTX_init(s->enc_read_ctx);
|
||||||
dd= s->enc_read_ctx;
|
dd= s->enc_read_ctx;
|
||||||
s->read_hash=m;
|
s->read_hash=m;
|
||||||
#ifndef OPENSSL_NO_COMP
|
#ifndef OPENSSL_NO_COMP
|
||||||
@ -327,10 +330,9 @@ int tls1_change_cipher_state(SSL *s, int which)
|
|||||||
reuse_dd = 1;
|
reuse_dd = 1;
|
||||||
else if ((s->enc_write_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
|
else if ((s->enc_write_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
|
||||||
goto err;
|
goto err;
|
||||||
if ((s->enc_write_ctx == NULL) &&
|
else
|
||||||
((s->enc_write_ctx=(EVP_CIPHER_CTX *)
|
/* make sure it's intialized in case we exit later with an error */
|
||||||
OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL))
|
EVP_CIPHER_CTX_init(s->enc_write_ctx);
|
||||||
goto err;
|
|
||||||
dd= s->enc_write_ctx;
|
dd= s->enc_write_ctx;
|
||||||
s->write_hash=m;
|
s->write_hash=m;
|
||||||
#ifndef OPENSSL_NO_COMP
|
#ifndef OPENSSL_NO_COMP
|
||||||
@ -357,7 +359,6 @@ int tls1_change_cipher_state(SSL *s, int which)
|
|||||||
|
|
||||||
if (reuse_dd)
|
if (reuse_dd)
|
||||||
EVP_CIPHER_CTX_cleanup(dd);
|
EVP_CIPHER_CTX_cleanup(dd);
|
||||||
EVP_CIPHER_CTX_init(dd);
|
|
||||||
|
|
||||||
p=s->s3->tmp.key_block;
|
p=s->s3->tmp.key_block;
|
||||||
i=EVP_MD_size(m);
|
i=EVP_MD_size(m);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user