boringssl/crypto
Chris Kennelly b5e4a225e4 Use sdallocx, if available, when deallocating.
Providing a size hint to the allocator is substantially faster,
especially as we already know/need the size for OPENSSL_cleanse.

We provide a weak symbol that falls back to free when a malloc with
sdallocx is not statically linked with BoringSSL.

Alternatives considered:
* Use dlsym():  This is prone to fail on statically linked binaries
  without symbols.  Additionally, the extra indirection adds call
  overhead above and beyond the linker resolved technique we're using.
* Use CMake rules to identify whether sdallocx is available:  Once the
  library is built, we may link against a variety of malloc
  implementations (not all of which may have sdallocx), so we need to
  have a fallback when the symbol is unavailable.

Change-Id: I3a78e88fac5b6e5d4712aa0347d2ba6b43046e07
Reviewed-on: https://boringssl-review.googlesource.com/31784
Reviewed-by: Chris Kennelly <ckennelly@google.com>
Reviewed-by: Adam Langley <agl@google.com>
2018-09-17 21:02:59 +00:00
..
asn1 Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
base64 Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
bio Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
bn_extra Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
buf Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
bytestring Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
chacha Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
cipher_extra Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
cmac Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
conf Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
curve25519 Automatically disable assembly with MSAN. 2018-09-07 21:12:37 +00:00
dh Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
digest_extra Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
dsa Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
ec_extra Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
ecdh_extra Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
ecdsa_extra Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
engine Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
err Support symbol prefixes 2018-09-06 20:07:52 +00:00
evp Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
fipsmodule Fix check of the pointer returned by BN_CTX_get 2018-09-11 16:35:22 +00:00
hkdf Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
hmac_extra Convert a number of tests to GTest. 2017-06-01 17:02:13 +00:00
lhash Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
obj Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
pem Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
perlasm Don't include quotes in heredocs. 2018-09-14 16:51:00 +00:00
pkcs7 Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
pkcs8 Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
poly1305 Automatically disable assembly with MSAN. 2018-09-07 21:12:37 +00:00
pool Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
rand_extra Add some RAND_bytes tests. 2018-09-06 23:54:57 +00:00
rc4 Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
rsa_extra Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
stack Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
test Add some RAND_bytes tests. 2018-09-06 23:54:57 +00:00
x509 Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
x509v3 Flatten most of the crypto target. 2018-09-05 23:41:25 +00:00
CMakeLists.txt Add some RAND_bytes tests. 2018-09-06 23:54:57 +00:00
compiler_test.cc Test that nullptr has the obvious memory representation. 2017-07-28 17:39:28 +00:00
constant_time_test.cc Add a test for CRYPTO_memcmp. 2018-03-27 16:22:47 +00:00
cpu-aarch64-fuchsia.c Add cpu-aarch64-fuchsia.c 2018-02-13 20:12:47 +00:00
cpu-aarch64-linux.c Add cpu-aarch64-fuchsia.c 2018-02-13 20:12:47 +00:00
cpu-arm-linux_test.cc Fix GCC (8.2.1) build error. 2018-09-06 15:38:11 +00:00
cpu-arm-linux.c Fix corner case in cpuinfo parser. 2018-09-05 00:00:14 +00:00
cpu-arm-linux.h Fix corner case in cpuinfo parser. 2018-09-05 00:00:14 +00:00
cpu-arm.c
cpu-intel.c Change OPENSSL_cpuid_setup to reserve more extended feature space. 2018-04-19 20:48:58 +00:00
cpu-ppc64le.c Run the comment converter on libcrypto. 2017-08-18 21:49:04 +00:00
crypto.c Automatically disable assembly with MSAN. 2018-09-07 21:12:37 +00:00
ex_data.c Unexport more of lhash. 2017-10-25 04:17:18 +00:00
internal.h Support symbol prefixes 2018-09-06 20:07:52 +00:00
mem.c Use sdallocx, if available, when deallocating. 2018-09-17 21:02:59 +00:00
refcount_c11.c Run the comment converter on libcrypto. 2017-08-18 21:49:04 +00:00
refcount_lock.c Run the comment converter on libcrypto. 2017-08-18 21:49:04 +00:00
refcount_test.cc Add a basic TSan test for ref-counts. 2018-07-23 18:57:19 +00:00
self_test.cc Extract FIPS KAT tests into a function. 2018-01-22 20:16:38 +00:00
thread_none.c Run the comment converter on libcrypto. 2017-08-18 21:49:04 +00:00
thread_pthread.c Delete |pthread_key_t| on dlclose. 2018-02-20 19:53:24 +00:00
thread_test.cc Use std::thread in thread_test.cc. 2018-06-04 17:32:48 +00:00
thread_win.c Reland "Fix bssl client/server's error-handling." 2018-05-07 17:19:59 +00:00
thread.c