summaryrefslogtreecommitdiff
path: root/crypto/ex_data.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/ex_data.c')
-rw-r--r--crypto/ex_data.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/crypto/ex_data.c b/crypto/ex_data.c
index 5de99b4735..0d87ea7f0e 100644
--- a/crypto/ex_data.c
+++ b/crypto/ex_data.c
@@ -392,16 +392,23 @@ void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
int CRYPTO_alloc_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad,
int idx)
{
- EX_CALLBACK *f;
- EX_CALLBACKS *ip;
void *curval;
- OSSL_EX_DATA_GLOBAL *global;
curval = CRYPTO_get_ex_data(ad, idx);
/* Already there, no need to allocate */
if (curval != NULL)
return 1;
+ return ossl_crypto_alloc_ex_data_intern(class_index, obj, ad, idx);
+}
+
+int ossl_crypto_alloc_ex_data_intern(int class_index, void *obj,
+ CRYPTO_EX_DATA *ad, int idx)
+{
+ EX_CALLBACK *f;
+ EX_CALLBACKS *ip;
+ OSSL_EX_DATA_GLOBAL *global;
+
global = ossl_lib_ctx_get_ex_data_global(ad->ctx);
if (global == NULL)
return 0;