boringssl/crypto
David Benjamin feaa57d13d Only call thread-local destructors on DLL_THREAD_DETACH.
In VS2015's debug runtime, the C runtime has been unloaded by the time
DLL_PROCESS_DETACH is called and things crash. Instead, don't run destructors
at that point.

This means we do *not* free memory associated with any remaining thread-locals
on application shutdown, only shutdown of individual threads. This is actually
desirable since it's consistent with pthreads. If an individual thread calls
pthread_exit, destructors are run. If the entire process exits, they are not.

(It's also consistent with thread_none.c which never bothers to free
anything.)

BUG=chromium:595795

Change-Id: I3e64d46ea03158fefff583c1e3e12dfa0c0e172d
Reviewed-on: https://boringssl-review.googlesource.com/7601
Reviewed-by: Steven Valdez <svaldez@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
2016-03-29 18:45:32 +00:00
..
aes Mark ARM assembly globals hidden uniformly in arm-xlate.pl. 2016-02-11 17:28:03 +00:00
asn1 Fix build when using Visual Studio 2015 Update 1. 2016-03-25 21:39:52 +00:00
base64 Remove calls to ERR_load_crypto_strings. 2016-01-25 23:09:08 +00:00
bio Fix Windows build 2016-03-20 16:46:10 +00:00
bn Fix |BN_CTX_get| error checking in |BN_from_montgomery|. 2016-03-29 00:44:10 +00:00
buf Make |BUF_memdup| look for zero length, not NULL. 2015-10-06 18:11:33 -07:00
bytestring Add CBS_ASN1_UTF8STRING define. 2016-03-23 19:29:49 +00:00
chacha Import chacha-x86.pl fix. 2016-03-28 15:58:24 +00:00
cipher Fix build when using Visual Studio 2015 Update 1. 2016-03-25 21:39:52 +00:00
cmac Fix some malloc test failures. 2016-03-28 17:17:32 +00:00
conf Add missing internal includes. 2016-03-20 16:38:54 +00:00
curve25519 Appease sanitizers in x25519_ge_scalarmult. 2016-03-10 19:08:42 +00:00
des Use the straight-forward ROTATE macro. 2015-12-16 19:57:31 +00:00
dh Don't cast |OPENSSL_malloc|/|OPENSSL_realloc| result. 2016-02-11 22:07:56 +00:00
digest Fix potential double free in EVP_DigestInit_ex 2016-03-22 15:17:32 +00:00
dsa Fix a few more missing CBB_cleanups. 2016-03-08 21:08:48 +00:00
ec Small tweak to P-256-x86-64 inversion. 2016-03-29 00:43:01 +00:00
ecdh Clean up |ECDH_compute_key|. 2015-10-27 17:00:25 +00:00
ecdsa Fix a few more missing CBB_cleanups. 2016-03-08 21:08:48 +00:00
engine Unwind DH_METHOD and DSA_METHOD. 2015-11-03 22:54:36 +00:00
err Align with upstream's error strings, take two. 2016-03-15 16:02:12 +00:00
evp Remove unnecessary include. 2016-03-28 15:57:17 +00:00
hkdf Fix build when using Visual Studio 2015 Update 1. 2016-03-25 21:39:52 +00:00
hmac Remove condition which always evaluates to true (size_t >= 0). 2015-11-11 22:20:19 +00:00
lhash Add a run_tests target to run all tests. 2015-10-26 20:33:44 +00:00
md4 Add one-shot |MD4| function. 2016-03-09 01:13:55 +00:00
md5 Make HOST_l2c return void. 2015-12-16 20:02:37 +00:00
modes Fix build when using Visual Studio 2015 Update 1. 2016-03-25 21:39:52 +00:00
obj Rename NID_x25519 to NID_X25519. 2016-03-07 15:48:51 +00:00
pem Decouple the EVP and PEM code. 2016-02-26 22:50:21 +00:00
perlasm perlasm/x86_64-xlate.pl: handle binary constants early. 2016-03-17 18:23:40 +00:00
pkcs8 BIO_new_mem_buf should take const void * 2016-02-24 19:14:19 +00:00
poly1305 Flip the arguments to ExpectBytesEqual in poly1305_test. 2016-03-24 19:30:47 +00:00
rand Add a deterministic PRNG for fuzzing. 2016-03-03 01:36:19 +00:00
rc4 Remove the stitched RC4-MD5 code and use the generic one. 2015-12-16 23:57:42 +00:00
rsa Fix typo in comment. 2016-03-28 15:57:00 +00:00
sha Consistently use named constants in ARM assembly files. 2016-02-23 17:18:18 +00:00
stack If no comparison function is set, sk_sort is a NOP 2016-02-25 20:02:53 +00:00
test Fix build when using Visual Studio 2015 Update 1. 2016-03-25 21:39:52 +00:00
x509 Fix some malloc test failures. 2016-03-28 17:17:32 +00:00
x509v3 Fix build when using Visual Studio 2015 Update 1. 2016-03-25 21:39:52 +00:00
CMakeLists.txt Rewrite ARM feature detection. 2016-03-26 04:54:44 +00:00
constant_time_test.c
cpu-aarch64-linux.c Rewrite ARM feature detection. 2016-03-26 04:54:44 +00:00
cpu-arm-linux.c Work around Android devices without AT_HWCAP2. 2016-03-26 04:56:45 +00:00
cpu-arm.c Rewrite ARM feature detection. 2016-03-26 04:54:44 +00:00
cpu-intel.c Add missing internal includes. 2016-03-20 16:38:54 +00:00
crypto.c Add |FIPS_mode|, which returns zero. 2016-03-02 00:15:37 +00:00
directory_posix.c
directory_win.c
directory.h
ex_data.c Skip free callbacks on empty CRYPTO_EX_DATAs. 2015-12-15 21:32:14 +00:00
internal.h Fix build when using Visual Studio 2015 Update 1. 2016-03-25 21:39:52 +00:00
mem.c Fix some indentation. 2016-01-28 00:51:45 +00:00
refcount_c11.c
refcount_lock.c
refcount_test.c
thread_none.c
thread_pthread.c Remove call to |fprintf| in |CRYPTO_once|. 2016-03-03 18:01:43 +00:00
thread_test.c Use the correct case for Windows headers. 2015-06-09 21:38:04 +00:00
thread_win.c Only call thread-local destructors on DLL_THREAD_DETACH. 2016-03-29 18:45:32 +00:00
thread.c
time_support.c Remove some mingw support cruft. 2016-01-25 23:05:45 +00:00