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 Update copyright year 2021-02-18 15:05:17 +00:00
bio.h Create libcrypto support for BIO_new_from_core_bio() 2021-05-04 12:00:21 +01:00
comp.h Update copyright year 2021-04-08 13:04:41 +01:00
conf.h Add ossl_ conf symbols 2021-03-18 17:52:37 +10:00
constant_time.h Add a constant time zero check function for 64-bit integers 2021-04-08 12:18:10 +01:00
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 Update copyright year 2021-02-18 15:05:17 +00:00
deprecated.h Update copyright year 2021-02-18 15:05:17 +00:00
der.h
dso.h Update copyright year 2021-02-18 15:05:17 +00:00
dsoerr.h err: rename err_load_xxx_strings_int functions 2021-05-26 13:01:47 +10:00
endian.h Update copyright year 2021-02-18 15:05:17 +00:00
err.h Update copyright year 2021-02-18 15:05:17 +00:00
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 Update copyright year 2021-03-11 13:27:36 +00:00
nelem.h Update copyright year 2021-02-18 15:05:17 +00:00
numbers.h Fix definition of ossl_intmax_t and ossl_uintmax_t 2021-06-22 19:49:52 +10:00
o_dir.h Update copyright year 2021-02-18 15:05:17 +00:00
packet.h Rename all getters to use get/get0 in name 2021-06-01 12:40:00 +02:00
param_build_set.h Add OSSL_PARAM_dup() and OSSL_PARAM_merge(). 2021-04-12 16:55:29 +10:00
passphrase.h Update copyright year 2021-02-18 15:05:17 +00:00
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 include/internal: Remove TODOs that are irrelevant for 3.0 2021-03-04 14:15:01 +01:00
sizes.h Update copyright year 2021-02-18 15:05:17 +00:00
sm3.h Add ossl_ symbols for sm3 and sm4 2021-03-18 17:52:37 +10:00
sockets.h Fix include/internal/sockets.h for VMS 2021-05-19 12:41:34 +02:00
sslconf.h Update copyright year 2021-02-18 15:05:17 +00:00
symhacks.h Instantiate predefined providers just-in-time 2021-06-24 14:48:14 +01:00
thread_once.h
tlsgroups.h Update copyright year 2021-02-18 15:05:17 +00:00
tsan_assist.h
unicode.h Fix a windows build break 2021-03-24 10:04:08 +10:00