summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ex_data.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/ex_data.c')
-rw-r--r--src/lib/libcrypto/ex_data.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/libcrypto/ex_data.c b/src/lib/libcrypto/ex_data.c
index 63885af3af..b1e3913662 100644
--- a/src/lib/libcrypto/ex_data.c
+++ b/src/lib/libcrypto/ex_data.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ex_data.c,v 1.19 2017/01/29 17:49:22 beck Exp $ */ 1/* $OpenBSD: ex_data.c,v 1.20 2018/03/17 16:20:01 beck Exp $ */
2 2
3/* 3/*
4 * Overhaul notes; 4 * Overhaul notes;
@@ -312,6 +312,8 @@ def_get_class(int class_index)
312 EX_CLASS_ITEM d, *p, *gen; 312 EX_CLASS_ITEM d, *p, *gen;
313 EX_DATA_CHECK(return NULL;) 313 EX_DATA_CHECK(return NULL;)
314 d.class_index = class_index; 314 d.class_index = class_index;
315 if (!OPENSSL_init_crypto(0, NULL))
316 return NULL;
315 CRYPTO_w_lock(CRYPTO_LOCK_EX_DATA); 317 CRYPTO_w_lock(CRYPTO_LOCK_EX_DATA);
316 p = lh_EX_CLASS_ITEM_retrieve(ex_data, &d); 318 p = lh_EX_CLASS_ITEM_retrieve(ex_data, &d);
317 if (!p) { 319 if (!p) {
@@ -500,6 +502,7 @@ int_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
500 EX_CLASS_ITEM *item; 502 EX_CLASS_ITEM *item;
501 void *ptr; 503 void *ptr;
502 CRYPTO_EX_DATA_FUNCS **storage = NULL; 504 CRYPTO_EX_DATA_FUNCS **storage = NULL;
505
503 if ((item = def_get_class(class_index)) == NULL) 506 if ((item = def_get_class(class_index)) == NULL)
504 return; 507 return;
505 CRYPTO_r_lock(CRYPTO_LOCK_EX_DATA); 508 CRYPTO_r_lock(CRYPTO_LOCK_EX_DATA);