openssl/include/internal
Matt Caswell 59a783d05a Fix a race in ossl_provider_add_to_store()
If two threads both attempt to load the same provider at the same time,
they will first both check to see if the provider already exists. If it
doesn't then they will both then create new provider objects and call the
init function. However only one of the threads will be successful in adding
the provider to the store. For the "losing" thread we should still return
"success", but we should deinitialise and free the no longer required
provider object, and return the object that exists in the store.

Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15854)
2021-06-24 14:48:15 +01:00
..
__DECC_INCLUDE_EPILOGUE.H
__DECC_INCLUDE_PROLOGUE.H
asn1.h
bio.h Create libcrypto support for BIO_new_from_core_bio() 2021-05-04 12:00:21 +01:00
comp.h
conf.h
constant_time.h
core.h CORE: Do a bit of cleanup of core fetching 2021-06-16 12:32:53 +01:00
cryptlib.h core: condition out more in FIPS builds 2021-05-24 09:39:15 +10:00
dane.h
deprecated.h
der.h
dso.h
dsoerr.h err: rename err_load_xxx_strings_int functions 2021-05-26 13:01:47 +10:00
endian.h
err.h
ffc.h Export/import flags for FFC params changed to seperate fields. 2021-05-13 09:49:18 +10:00
ktls.h Refactor KTLS tests to better support TLS 1.3. 2021-06-21 09:28:43 +02:00
namemap.h
nelem.h
numbers.h Fix definition of ossl_intmax_t and ossl_uintmax_t 2021-06-22 19:49:52 +10:00
o_dir.h
packet.h Rename all getters to use get/get0 in name 2021-06-01 12:40:00 +02:00
param_build_set.h
passphrase.h
property.h Add the internal function ossl_method_store_do_all() 2021-06-15 16:21:31 +02:00
propertyerr.h err: rename err_load_xxx_strings_int functions 2021-05-26 13:01:47 +10:00
provider.h Fix a race in ossl_provider_add_to_store() 2021-06-24 14:48:15 +01:00
refcount.h Rework and make DEBUG macros consistent. 2021-05-28 10:04:31 +02:00
sha3.h
sizes.h
sm3.h
sockets.h Fix include/internal/sockets.h for VMS 2021-05-19 12:41:34 +02:00
sslconf.h
symhacks.h Instantiate predefined providers just-in-time 2021-06-24 14:48:14 +01:00
thread_once.h
tlsgroups.h
tsan_assist.h
unicode.h