Add checks on CRYPTO_new_ex_data return value
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/996)
This commit is contained in:
parent
8fdc99cb5d
commit
25a807bcb9
6 changed files with 21 additions and 8 deletions
|
@ -93,7 +93,8 @@ int BIO_set(BIO *bio, const BIO_METHOD *method)
|
|||
bio->references = 1;
|
||||
bio->num_read = 0L;
|
||||
bio->num_write = 0L;
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_BIO, bio, &bio->ex_data);
|
||||
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_BIO, bio, &bio->ex_data))
|
||||
return 0;
|
||||
|
||||
bio->lock = CRYPTO_THREAD_lock_new();
|
||||
if (bio->lock == NULL) {
|
||||
|
|
|
@ -83,7 +83,10 @@ ENGINE *ENGINE_new(void)
|
|||
}
|
||||
ret->struct_ref = 1;
|
||||
engine_ref_debug(ret, 0, 1);
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_ENGINE, ret, &ret->ex_data);
|
||||
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_ENGINE, ret, &ret->ex_data)) {
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -92,7 +92,10 @@ UI *UI_new_method(const UI_METHOD *method)
|
|||
else
|
||||
ret->meth = method;
|
||||
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_UI, ret, &ret->ex_data);
|
||||
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_UI, ret, &ret->ex_data)) {
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -99,7 +99,8 @@ static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
|
|||
#endif
|
||||
ret->aux = NULL;
|
||||
ret->crldp = NULL;
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509, ret, &ret->ex_data);
|
||||
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509, ret, &ret->ex_data))
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case ASN1_OP_FREE_POST:
|
||||
|
|
|
@ -751,7 +751,8 @@ SSL *SSL_new(SSL_CTX *ctx)
|
|||
if (!SSL_clear(s))
|
||||
goto err;
|
||||
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL, s, &s->ex_data);
|
||||
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL, s, &s->ex_data))
|
||||
goto err;
|
||||
|
||||
#ifndef OPENSSL_NO_PSK
|
||||
s->psk_client_callback = ctx->psk_client_callback;
|
||||
|
@ -2441,7 +2442,8 @@ SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth)
|
|||
if ((ret->client_CA = sk_X509_NAME_new_null()) == NULL)
|
||||
goto err;
|
||||
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_CTX, ret, &ret->ex_data);
|
||||
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_CTX, ret, &ret->ex_data))
|
||||
goto err;
|
||||
|
||||
/* No compression for DTLS */
|
||||
if (!(meth->ssl3_enc->enc_flags & SSL_ENC_FLAG_DTLS))
|
||||
|
|
|
@ -198,8 +198,11 @@ SSL_SESSION *SSL_SESSION_new(void)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data);
|
||||
|
||||
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data)) {
|
||||
CRYPTO_THREAD_lock_free(ss->lock);
|
||||
OPENSSL_free(ss);
|
||||
return NULL;
|
||||
}
|
||||
return ss;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue