openssl/crypto
Matt Caswell 5836780f43 Ensure that libcrypto and libssl do not unload until the process exits
Because we use atexit() to cleanup after ourselves, this will cause a
problem if we have been dynamically loaded and then unloaded again: the
atexit() handler may no longer be there.

Most modern atexit() implementations can handle this, however there are
still difficulties if libssl gets unloaded before libcrypto, because of
the atexit() callback that libcrypto makes to libssl.

The most robust solution seems to be to ensure that libcrypto and libssl
never unload. This is done by simply deliberately leaking a dlopen()
reference to them.

Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-11-02 23:32:50 +00:00
..
aes x86_64 assembly pack: add Goldmont performance results. 2016-10-24 13:01:13 +02:00
asn1 Create BIO_write_ex() which handles size_t arguments 2016-10-28 09:48:54 +01:00
async Check for errors allocating the error strings. 2016-07-20 19:20:53 +02:00
bf Remove/rename some old files. 2016-06-01 11:29:57 -04:00
bio Try to unify BIO read/write parameter names 2016-10-29 00:56:52 +02:00
blake2 Copyright consolidation 09/10 2016-05-17 14:53:16 -04:00
bn ppccap.c: engage new multipplication and squaring subroutines. 2016-10-24 20:00:40 +02:00
buffer Check for errors allocating the error strings. 2016-07-20 19:20:53 +02:00
camellia Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
cast Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
chacha x86_64 assembly pack: add Goldmont performance results. 2016-10-24 13:01:13 +02:00
cmac Copyright consolidation 06/10 2016-05-17 14:51:04 -04:00
cms Fix enable-zlib 2016-08-22 09:43:13 +01:00
comp Check for errors allocating the error strings. 2016-07-20 19:20:53 +02:00
conf Check for errors allocating the error strings. 2016-07-20 19:20:53 +02:00
ct Add -Wswitch-enum 2016-09-22 08:36:26 -04:00
des Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
dh Constify private key decode. 2016-08-17 12:01:29 +01:00
dsa Fix a missing NULL check in dsa_builtin_paramgen 2016-09-21 13:32:30 +01:00
dso Add a DSO_dsobyaddr() function 2016-11-02 23:32:50 +00:00
ec Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
engine Fix support for DragonFly BSD 2016-10-22 04:25:17 -04:00
err Ensure we handle len == 0 in ERR_err_string_n 2016-10-15 11:30:15 +01:00
evp Create BIO_write_ex() which handles size_t arguments 2016-10-28 09:48:54 +01:00
hmac Teach EVP_PKEY_HMAC keys how to EVP_PKEY_cmp() 2016-06-24 12:31:31 -04:00
idea Remove/rename some old files. 2016-06-01 11:29:57 -04:00
include/internal Remove an useless definition. 2016-09-17 12:32:37 -04:00
kdf Check for errors allocating the error strings. 2016-07-20 19:20:53 +02:00
lhash GH1555: Don't bump size on realloc failure 2016-09-21 10:40:27 -04:00
md2 Convert memset calls to OPENSSL_cleanse 2016-06-30 15:51:57 +01:00
md4 Remove/rename some old files. 2016-06-01 11:29:57 -04:00
md5 Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
mdc2 Avoid overflow in MDC2_Update() 2016-08-24 14:12:51 +01:00
modes x86_64 assembly pack: add Goldmont performance results. 2016-10-24 13:01:13 +02:00
objects Sanity check an ASN1_object_size result 2016-08-23 00:19:15 +01:00
ocsp Add OCSP_RESPID_match() 2016-09-22 09:27:45 +01:00
pem Limit reads in do_b2i_bio() 2016-08-16 00:27:10 +01:00
perlasm Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
pkcs7 Check for errors allocating the error strings. 2016-07-20 19:20:53 +02:00
pkcs12 Don't switch password formats using global state. 2016-08-25 11:42:33 +01:00
poly1305 x86_64 assembly pack: add Goldmont performance results. 2016-10-24 13:01:13 +02:00
rand rand/randfile.c: treat empty string in RAND_file_name as error. 2016-09-21 21:09:11 +02:00
rc2 Remove/rename some old files. 2016-06-01 11:29:57 -04:00
rc4 Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
rc5 Remove/rename some old files. 2016-06-01 11:29:57 -04:00
ripemd Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
rsa RT2676: Reject RSA eponent if even or 1 2016-08-22 11:25:12 -04:00
seed Copyright consolidation 09/10 2016-05-17 14:53:16 -04:00
sha sha/keccak1600.c: add couple of soft asserts. 2016-10-31 22:18:07 +01:00
srp SRP code tidy. 2016-10-01 13:46:54 +01:00
stack Don't leak on an OPENSSL_realloc() failure 2016-09-21 20:27:15 +01:00
ts Add error checking, small nit on ouput 2016-10-19 06:37:42 -04:00
txt_db Rename lh_xxx,sk_xxx tp OPENSSL_{LH,SK}_xxx 2016-05-20 10:48:29 -04:00
ui Add -Wswitch-enum 2016-09-22 08:36:26 -04:00
whrlpool Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
x509 Fix X509_NAME decode for malloc failures. 2016-10-11 22:09:31 +01:00
x509v3 Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
alphacpuid.pl Add assembly CRYPTO_memcmp. 2016-05-19 22:33:00 +02:00
arm64cpuid.pl Add assembly CRYPTO_memcmp. 2016-05-19 22:33:00 +02:00
arm_arch.h Copyright consolidation 07/10 2016-05-17 14:51:26 -04:00
armcap.c Copyright consolidation 07/10 2016-05-17 14:51:26 -04:00
armv4cpuid.pl Add assembly CRYPTO_memcmp. 2016-05-19 22:33:00 +02:00
build.info Move OS-specific fopen quirks to o_fopen.c. 2016-06-22 21:51:53 +02:00
c64xpluscpuid.pl Add assembly CRYPTO_memcmp. 2016-05-19 22:33:00 +02:00
cpt_err.c Check for errors allocating the error strings. 2016-07-20 19:20:53 +02:00
cryptlib.c crypto/cryptlib.c: omit OPENSSL_ia32cap_loc(). 2016-06-22 20:20:37 +02:00
cversion.c Copyright consolidation 08/10 2016-05-17 14:51:34 -04:00
dllmain.c Copyright consolidation 09/10 2016-05-17 14:53:16 -04:00
ebcdic.c Copyright consolidation 05/10 2016-05-17 15:38:09 -04:00
ex_data.c Fix mem leaks during auto-deinit 2016-09-08 12:40:19 +01:00
ia64cpuid.S Add final(?) set of copyrights. 2016-06-01 11:27:25 -04:00
init.c Ensure that libcrypto and libssl do not unload until the process exits 2016-11-02 23:32:50 +00:00
LPdir_nyi.c Remove the silly CVS markers from LPdir_*.c 2016-07-16 07:58:23 +02:00
LPdir_unix.c Remove the silly CVS markers from LPdir_*.c 2016-07-16 07:58:23 +02:00
LPdir_vms.c Copyright consolidation 05/10 2016-05-17 15:38:09 -04:00
LPdir_win.c Fix mingw build 2016-07-18 10:47:07 +01:00
LPdir_win32.c Remove the silly CVS markers from LPdir_*.c 2016-07-16 07:58:23 +02:00
LPdir_wince.c Remove the silly CVS markers from LPdir_*.c 2016-07-16 07:58:23 +02:00
mem.c Convert memset calls to OPENSSL_cleanse 2016-06-30 15:51:57 +01:00
mem_clr.c Fix some style issues... 2016-08-02 09:59:23 +02:00
mem_dbg.c fix crypto-mdebug build 2016-07-20 12:41:31 +01:00
mem_sec.c Copyright consolidation 06/10 2016-05-17 14:51:04 -04:00
mips_arch.h Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00
o_dir.c Copyright consolidation 05/10 2016-05-17 15:38:09 -04:00
o_fips.c Copyright consolidation 04/10 2016-05-17 14:24:46 -04:00
o_fopen.c Fix a few if(, for(, while( inside code. 2016-07-20 07:21:53 -04:00
o_init.c Copyright consolidation 08/10 2016-05-17 14:51:34 -04:00
o_str.c buf2hexstr: properly deal with empty string 2016-06-21 20:55:54 +02:00
o_time.c VSI submisson: make better use of item lists in o_time.c 2016-08-04 16:51:39 +02:00
pariscid.pl Add assembly CRYPTO_memcmp. 2016-05-19 22:33:00 +02:00
ppc_arch.h GH919: Fix wrappers for two headers 2016-05-24 11:04:38 -04:00
ppccap.c ppccap.c: engage new multipplication and squaring subroutines. 2016-10-24 20:00:40 +02:00
ppccpuid.pl Add assembly CRYPTO_memcmp. 2016-05-19 22:33:00 +02:00
s390xcap.c Fix strict-warnings build 2016-10-18 17:09:47 +01:00
s390xcpuid.S s390x assembly pack: improve portability. 2016-06-06 11:08:04 +02:00
sparc_arch.h Copyright consolidation 09/10 2016-05-17 14:53:16 -04:00
sparccpuid.S spelling fixes, just comments and readme. 2016-08-05 19:07:30 -04:00
sparcv9cap.c crypto/sparcv9cap.c: add missing declaration. 2016-08-12 10:26:20 +02:00
threads_none.c Copyright consolidation 04/10 2016-05-17 14:24:46 -04:00
threads_pthread.c CRYPTO_atomic_add(): check that the object is lock free 2016-08-24 14:37:48 +01:00
threads_win.c include/openssl: don't include <windows.h> in public headers. 2016-07-08 11:49:44 +02:00
uid.c Fix support for DragonFly BSD 2016-10-22 04:25:17 -04:00
vms_rms.h Copyright consolidation 09/10 2016-05-17 14:53:16 -04:00
x86_64cpuid.pl crypto/x86[_64]cpuid.pl: add OPENSSL_ia32_rd[rand|seed]_bytes. 2016-07-15 13:20:52 +02:00
x86cpuid.pl Remove trailing whitespace from some files. 2016-10-10 23:36:21 +01:00