Commit d31a1395 authored by Nils Larsch's avatar Nils Larsch
Browse files

ensure that the EVP_CIPHER_CTX object is initialized

PR: 1490
parent 28f58731
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -82,15 +82,18 @@ int ssl2_enc_init(SSL *s, int client)
		((s->enc_read_ctx=(EVP_CIPHER_CTX *)
		OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL))
		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) &&
		((s->enc_write_ctx=(EVP_CIPHER_CTX *)
		OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL))
		goto err;

	rs= s->enc_read_ctx;
	ws= s->enc_write_ctx;

	EVP_CIPHER_CTX_init(rs);
	EVP_CIPHER_CTX_init(ws);

	num=c->key_len;
+6 −1
Original line number Diff line number Diff line
@@ -221,6 +221,9 @@ int ssl3_change_cipher_state(SSL *s, int which)
			reuse_dd = 1;
		else if ((s->enc_read_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
			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;
		s->read_hash=m;
#ifndef OPENSSL_NO_COMP
@@ -254,6 +257,9 @@ int ssl3_change_cipher_state(SSL *s, int which)
			reuse_dd = 1;
		else if ((s->enc_write_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
			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;
		s->write_hash=m;
#ifndef OPENSSL_NO_COMP
@@ -279,7 +285,6 @@ int ssl3_change_cipher_state(SSL *s, int which)

	if (reuse_dd)
		EVP_CIPHER_CTX_cleanup(dd);
	EVP_CIPHER_CTX_init(dd);

	p=s->s3->tmp.key_block;
	i=EVP_MD_size(m);
+6 −5
Original line number Diff line number Diff line
@@ -267,6 +267,9 @@ int tls1_change_cipher_state(SSL *s, int which)
			reuse_dd = 1;
		else if ((s->enc_read_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
			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;
		s->read_hash=m;
#ifndef OPENSSL_NO_COMP
@@ -301,10 +304,9 @@ int tls1_change_cipher_state(SSL *s, int which)
			reuse_dd = 1;
		else if ((s->enc_write_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
			goto err;
		if ((s->enc_write_ctx == NULL) &&
			((s->enc_write_ctx=(EVP_CIPHER_CTX *)
			OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL))
			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;
		s->write_hash=m;
#ifndef OPENSSL_NO_COMP
@@ -331,7 +333,6 @@ int tls1_change_cipher_state(SSL *s, int which)

	if (reuse_dd)
		EVP_CIPHER_CTX_cleanup(dd);
	EVP_CIPHER_CTX_init(dd);

	p=s->s3->tmp.key_block;
	i=EVP_MD_size(m);