openssl/crypto
Richard Levitte 4da7663b02 For child libctx / provider, don't count self-references in parent
In child library contexts, which contain child "clones" of the
providers the application has in store, one of these children will
always be the provider that creates the child library context; let's
call them self-refering child providers.

For these self-refering child providers, we don't increment the parent
provider reference count, nor do we free the parent provider, as those
become self defeating and hinder the teardown and unloading process
when the application cleans up.

For non self-refering child providers, we must retain this propagation
of reference count to the parent, so that aren't torn down too early,
i.e. when there's still a "foreign" reference (fetched algorithm).

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18151)
2022-05-05 15:06:11 +02:00
..
aes Update copyright year 2022-05-03 13:34:51 +01:00
aria fix some code with obvious wrong coding style 2021-10-28 13:10:46 +10:00
asn1 Update copyright year 2022-05-03 13:34:51 +01:00
async Update copyright year 2022-05-03 13:34:51 +01:00
bf
bio Update copyright year 2022-05-03 13:34:51 +01:00
bn Update copyright year 2022-05-03 13:34:51 +01:00
buffer Update copyright year 2021-06-17 13:24:59 +01:00
camellia Update copyright year 2022-05-03 13:34:51 +01:00
cast
chacha Update copyright year 2022-05-03 13:34:51 +01:00
cmac EVP_Cipher: fix the incomplete return check 2021-11-16 17:28:23 +01:00
cmp Remove duplicated #include headers 2022-05-04 13:46:10 +10:00
cms Remove duplicated #include headers 2022-05-04 13:46:10 +10:00
comp Fix coverity 1493364 & 1493375: unchecked return value 2021-11-08 08:55:32 +10:00
conf Update copyright year 2022-05-03 13:34:51 +01:00
crmf crmf_lib.c: Make sure Ed signature for POPO is called without digest 2022-05-05 09:52:27 +02:00
ct Update copyright year 2021-06-17 13:24:59 +01:00
des Update copyright year 2022-05-03 13:34:51 +01:00
dh Remove duplicated #include headers 2022-05-04 13:46:10 +10:00
dsa Update copyright year 2022-05-03 13:34:51 +01:00
dso Update copyright year 2022-05-03 13:34:51 +01:00
ec Update copyright year 2022-05-03 13:34:51 +01:00
encode_decode Update copyright year 2022-05-03 13:34:51 +01:00
engine Update copyright year 2022-05-03 13:34:51 +01:00
err Update copyright year 2022-05-03 13:34:51 +01:00
ess
evp Make it possible to remove methods by the provider that provides them 2022-05-05 15:05:55 +02:00
ffc Update copyright year 2022-05-03 13:34:51 +01:00
hmac Adapt other parts of the source to the changed EVP_Q_digest() and EVP_Q_mac() 2021-06-23 23:00:36 +02:00
http Update copyright year 2022-05-03 13:34:51 +01:00
idea
kdf
lhash Update copyright year 2022-05-03 13:34:51 +01:00
md2
md4
md5 Update copyright year 2022-05-03 13:34:51 +01:00
mdc2
modes Update copyright year 2022-05-03 13:34:51 +01:00
objects objects.txt: Add newly registered OIDs according to CMP Updates, for use in extended CMPv2 2022-05-04 13:23:31 +02:00
ocsp Update copyright year 2022-05-03 13:34:51 +01:00
pem Update copyright year 2022-05-03 13:34:51 +01:00
perlasm Update copyright year 2022-05-03 13:34:51 +01:00
pkcs7 Update copyright year 2022-05-03 13:34:51 +01:00
pkcs12 Update copyright year 2022-05-03 13:34:51 +01:00
poly1305 Update copyright year 2022-05-03 13:34:51 +01:00
property Complete the cleanup of an algorithm in OSSL_METHOD_STORE 2022-05-05 15:06:11 +02:00
rand Update copyright year 2022-05-03 13:34:51 +01:00
rc2
rc4
rc5
ripemd
rsa Update copyright year 2022-05-03 13:34:51 +01:00
seed Update copyright year 2021-06-17 13:24:59 +01:00
sha Update copyright year 2022-05-03 13:34:51 +01:00
siphash Update copyright year 2022-05-03 13:34:51 +01:00
sm2 Remove duplicated #include headers 2022-05-04 13:46:10 +10:00
sm3 Update copyright year 2022-05-03 13:34:51 +01:00
sm4 Update copyright year 2022-05-03 13:34:51 +01:00
srp fix some code with obvious wrong coding style 2021-10-28 13:10:46 +10:00
stack Fix Coverity 1493746: constant expression result 2021-11-17 08:15:35 +10:00
store Update copyright year 2022-05-03 13:34:51 +01:00
ts Update copyright year 2022-05-03 13:34:51 +01:00
txt_db
ui Update copyright year 2022-05-03 13:34:51 +01:00
whrlpool
x509 X509{,_LOOKUP}: Improve distinction between not found and fatal/internal error 2022-05-04 16:25:44 +02:00
LPdir_nyi.c
LPdir_unix.c Update copyright year 2022-05-03 13:34:51 +01:00
LPdir_vms.c
LPdir_win.c
LPdir_win32.c
LPdir_wince.c
README-sparse_array.md
alphacpuid.pl
arm64cpuid.pl Update copyright year 2022-05-03 13:34:51 +01:00
arm_arch.h Update copyright year 2022-05-03 13:34:51 +01:00
armcap.c Update copyright year 2022-05-03 13:34:51 +01:00
armv4cpuid.pl
asn1_dsa.c
bsearch.c
build.info Statically link the legacy provider to endecode_test 2022-01-11 11:00:21 +00:00
c64xpluscpuid.pl
context.c Update copyright year 2022-05-03 13:34:51 +01:00
core_algorithm.c Refactor method construction pre- and post-condition 2022-05-05 15:05:54 +02:00
core_fetch.c Refactor method construction pre- and post-condition 2022-05-05 15:05:54 +02:00
core_namemap.c Update copyright year 2022-05-03 13:34:51 +01:00
cpt_err.c err: add additional errors 2022-01-12 20:10:21 +11:00
cpuid.c Update copyright year 2022-05-03 13:34:51 +01:00
cryptlib.c Update copyright year 2022-05-03 13:34:51 +01:00
ctype.c Update copyright year 2022-05-03 13:34:51 +01:00
cversion.c
der_writer.c
dllmain.c Update copyright year 2022-05-03 13:34:51 +01:00
ebcdic.c
ex_data.c
getenv.c Update copyright year 2022-05-03 13:34:51 +01:00
ia64cpuid.S
info.c Update copyright year 2022-05-03 13:34:51 +01:00
init.c Update copyright year 2022-05-03 13:34:51 +01:00
initthread.c Update copyright year 2022-05-03 13:34:51 +01:00
mem.c Update copyright year 2022-05-03 13:34:51 +01:00
mem_clr.c
mem_sec.c Update copyright year 2022-05-03 13:34:51 +01:00
mips_arch.h
o_dir.c Update copyright year 2022-05-03 13:34:51 +01:00
o_fopen.c Update copyright year 2022-05-03 13:34:51 +01:00
o_init.c Update copyright year 2022-05-03 13:34:51 +01:00
o_str.c Update copyright year 2022-05-03 13:34:51 +01:00
o_time.c
packet.c Update copyright year 2021-06-17 13:24:59 +01:00
param_build.c Update copyright year 2022-05-03 13:34:51 +01:00
param_build_set.c Update copyright year 2022-05-03 13:34:51 +01:00
params.c Update copyright year 2022-05-03 13:34:51 +01:00
params_dup.c Update copyright year 2022-05-03 13:34:51 +01:00
params_from_text.c Allow sign extension in OSSL_PARAM_allocate_from_text() 2021-11-24 19:18:19 +01:00
pariscid.pl
passphrase.c Update copyright year 2022-05-03 13:34:51 +01:00
ppccap.c Update copyright year 2022-05-03 13:34:51 +01:00
ppccpuid.pl Update copyright year 2022-05-03 13:34:51 +01:00
provider.c Correctly activate the provider in OSSL_PROVIDER_try_load 2021-11-12 17:16:14 +00:00
provider_child.c For child libctx / provider, don't count self-references in parent 2022-05-05 15:06:11 +02:00
provider_conf.c Update copyright year 2022-05-03 13:34:51 +01:00
provider_core.c Make it possible to remove methods by the provider that provides them 2022-05-05 15:05:55 +02:00
provider_local.h make struct provider_info_st a full type 2021-06-24 14:48:15 +01:00
provider_predefined.c make struct provider_info_st a full type 2021-06-24 14:48:15 +01:00
punycode.c Move more general parts of internal/cryptlib.h to new internal/common.h 2021-11-17 15:48:37 +01:00
s390x_arch.h Update copyright year 2022-05-03 13:34:51 +01:00
s390xcap.c s390: Add new machine generation 2022-04-12 13:04:57 +02:00
s390xcpuid.pl
self_test_core.c Update copyright year 2022-05-03 13:34:51 +01:00
sparccpuid.S
sparcv9cap.c Split bignum code out of the sparcv9cap.c 2021-07-15 09:33:04 +02:00
sparse_array.c Update copyright year 2022-05-03 13:34:51 +01:00
threads_lib.c
threads_none.c
threads_pthread.c Update copyright year 2022-05-03 13:34:51 +01:00
threads_win.c Explicitly #include <synchapi.h> is unnecessary 2021-09-23 14:07:18 +02:00
trace.c Update copyright year 2022-05-03 13:34:51 +01:00
uid.c Openssl fails to compile on Debian with kfreebsd kernels 2021-09-02 10:02:32 +10:00
vms_rms.h
x86_64cpuid.pl
x86cpuid.pl