summaryrefslogtreecommitdiffstats
path: root/test/tls-provider.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/tls-provider.c')
-rw-r--r--test/tls-provider.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/test/tls-provider.c b/test/tls-provider.c
index c5b2306729..d8ec7c2dc2 100644
--- a/test/tls-provider.c
+++ b/test/tls-provider.c
@@ -3220,12 +3220,12 @@ int tls_provider_init(const OSSL_CORE_HANDLE *handle,
OSSL_LIB_CTX *libctx = OSSL_LIB_CTX_new_from_dispatch(handle, in);
OSSL_FUNC_core_obj_create_fn *c_obj_create= NULL;
OSSL_FUNC_core_obj_add_sigid_fn *c_obj_add_sigid= NULL;
- PROV_XOR_CTX *prov_ctx = xor_newprovctx(libctx);
+ PROV_XOR_CTX *xor_prov_ctx = xor_newprovctx(libctx);
- if (libctx == NULL || prov_ctx == NULL)
- return 0;
+ if (libctx == NULL || xor_prov_ctx == NULL)
+ goto err;
- *provctx = prov_ctx;
+ *provctx = xor_prov_ctx;
/*
* Randomise the group_id and code_points we're going to use to ensure we
@@ -3258,23 +3258,29 @@ int tls_provider_init(const OSSL_CORE_HANDLE *handle,
*/
if (!c_obj_create(handle, XORSIGALG_OID, XORSIGALG_NAME, XORSIGALG_NAME)) {
ERR_raise(ERR_LIB_USER, XORPROV_R_OBJ_CREATE_ERR);
- return 0;
+ goto err;
}
if (!c_obj_add_sigid(handle, XORSIGALG_OID, "", XORSIGALG_OID)) {
ERR_raise(ERR_LIB_USER, XORPROV_R_OBJ_CREATE_ERR);
- return 0;
+ goto err;
}
if (!c_obj_create(handle, XORSIGALG_HASH_OID, XORSIGALG_HASH_NAME, NULL)) {
ERR_raise(ERR_LIB_USER, XORPROV_R_OBJ_CREATE_ERR);
- return 0;
+ goto err;
}
if (!c_obj_add_sigid(handle, XORSIGALG_HASH_OID, XORSIGALG_HASH, XORSIGALG_HASH_OID)) {
ERR_raise(ERR_LIB_USER, XORPROV_R_OBJ_CREATE_ERR);
- return 0;
+ goto err;
}
*out = tls_prov_dispatch_table;
return 1;
+
+err:
+ OPENSSL_free(xor_prov_ctx);
+ *provctx = NULL;
+ OSSL_LIB_CTX_free(libctx);
+ return 0;
}