Don't create an OPENSSL_CTX twice

The fips provider was creating the OPENSSL_CTX twice due to a previous
merge error.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9184)
This commit is contained in:
Matt Caswell 2019-06-18 18:36:36 +01:00
parent b720949ec0
commit 03361afb3c

View file

@ -216,18 +216,7 @@ int OSSL_provider_init(const OSSL_PROVIDER *provider,
void **provctx)
{
FIPS_GLOBAL *fgbl;
OPENSSL_CTX *ctx = OPENSSL_CTX_new();
if (ctx == NULL)
return 0;
fgbl = openssl_ctx_get_data(ctx, OPENSSL_CTX_FIPS_PROV_INDEX,
&fips_prov_ossl_ctx_method);
if (fgbl == NULL)
goto err;
fgbl->prov = provider;
OPENSSL_CTX *ctx;
for (; in->function_id != 0; in++) {
switch (in->function_id) {
@ -256,6 +245,14 @@ int OSSL_provider_init(const OSSL_PROVIDER *provider,
if (ctx == NULL)
return 0;
fgbl = openssl_ctx_get_data(ctx, OPENSSL_CTX_FIPS_PROV_INDEX,
&fips_prov_ossl_ctx_method);
if (fgbl == NULL)
goto err;
fgbl->prov = provider;
*out = fips_dispatch_table;
*provctx = ctx;