bind9/lib/isc
Michał Kępień e974f98eb4
Improve stability of the jemalloc workaround
When jemalloc is linked into BIND 9 binaries (rather than preloaded or
used as the system allocator), depending on the decisions made by the
linker, the malloc() symbol may be resolved to a non-jemalloc
implementation at runtime.  Such a scenario foils the workaround added
in commit 2da371d005 as it relies on the
jemalloc implementation of malloc() to be executed.

Handle the above scenario properly by calling mallocx() explicitly
instead of relying on the runtime resolution of the malloc() symbol.
Use trivial wrapper functions to avoid the need to copy multiple #ifdef
lines from lib/isc/mem.c to lib/isc/trampoline.c.  Using a simpler
alternative, e.g. calling isc_mem_create() & isc_mem_destroy(), was
already considered before and rejected, as described in the log message
for commit 2da371d005.

ADJUST_ZERO_ALLOCATION_SIZE() is only used in isc__mem_free_noctx() to
concisely avoid compilation warnings about its 'size' parameter not
being used when building against jemalloc < 4.0.0 (as sdallocx() is then
redefined to dallocx(), which has a different signature).
2023-11-01 18:04:07 +01:00
..
include Update the source code formatting using clang-format-17 2023-10-18 09:02:57 +02:00
netmgr Add parentheses around macro arguement 'msec' 2023-10-20 10:30:48 +11:00
.gitignore [master] update gitignore files; use rev-parse to get srcid 2014-06-17 13:49:30 -07:00
aes.c Remove EVP_CIPHER_CTX_new() and EVP_CIPHER_CTX_free() shims 2022-03-02 10:49:47 +00:00
app.c Update sources to Clang 15 formatting 2022-11-29 09:14:07 +01:00
assertions.c Remove redundant #include <isc/strerr.h> 2022-10-17 16:08:28 +01:00
astack.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
backtrace.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
base32.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:42:18 +01:00
base64.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:42:18 +01:00
buffer.c change ISC__BUFFER macros to inline functions 2022-09-27 00:45:28 -07:00
commandline.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
condition.c Remove redundant #include <isc/strerr.h> 2022-10-17 16:08:28 +01:00
counter.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
crc64.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
dir.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
entropy.c De-duplicate __FILE__, __LINE__ 2022-10-17 16:00:26 +01:00
entropy_private.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
errno.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
errno2result.c Translate POSIX errorcode EROFS to ISC_R_NOPERM 2023-06-14 13:48:25 +01:00
errno2result.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
error.c Include the function name when reporting unexpected errors 2022-10-17 16:00:27 +01:00
event.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
file.c Update sources to Clang 15 formatting 2022-11-29 09:14:07 +01:00
glob.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
hash.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
heap.c Update sources to Clang 15 formatting 2022-11-29 09:14:07 +01:00
hex.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:42:18 +01:00
hmac.c Clear OpenSSL errors on EVP failures 2023-09-01 13:40:32 +10:00
ht.c Implement incremental hash table resizing in isc_ht 2023-01-11 17:15:33 +01:00
httpd.c Explicitly cast chars to unsigned chars for <ctype.h> functions 2023-09-22 17:01:59 +02:00
interfaceiter.c De-duplicate __FILE__, __LINE__ 2022-10-17 16:00:26 +01:00
iterated_hash.c Clear OpenSSL errors on SHA failures 2023-09-01 13:45:34 +10:00
jemalloc_shim.h Make it possible to create memory contexts backed by jemalloc arenas 2023-09-05 15:02:30 +02:00
lex.c Update sources to Clang 15 formatting 2022-11-29 09:14:07 +01:00
lib.c remove isc_bind9 variable 2023-02-09 10:07:39 -08:00
log.c Re-write remove_old_tsversions and greatest_version 2023-05-03 10:39:46 +02:00
Makefile.am Replace isc_fsaccess API with more secure file creation 2023-03-31 16:47:15 +02:00
managers.c De-duplicate __FILE__, __LINE__ 2022-10-17 16:00:26 +01:00
md.c Call ERR_clear_error on EVP_MD_fetch or EVP_##alg error 2023-09-06 15:47:05 +00:00
mem.c Improve stability of the jemalloc workaround 2023-11-01 18:04:07 +01:00
mem_p.h Improve stability of the jemalloc workaround 2023-11-01 18:04:07 +01:00
meminfo.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
mutex.c Remove redundant #include <isc/strerr.h> 2022-10-17 16:08:28 +01:00
mutexblock.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
net.c remove nonfunctional DSCP implementation 2023-01-09 14:23:26 -08:00
netaddr.c Update the source code formatting using clang-format-17 2023-10-18 09:02:57 +02:00
netmgr_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
netscope.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
nonce.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
openssl_shim.c Do not provide a shim for SSL_SESSION_is_resumable() 2022-06-15 17:02:45 +03:00
openssl_shim.h Do not provide a shim for SSL_SESSION_is_resumable() 2022-06-15 17:02:45 +03:00
os.c Add isc_os_umask() function to get current umask 2023-03-31 16:47:15 +02:00
os_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
parseint.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
picohttpparser.c Update sources to Clang 15 formatting 2022-11-29 09:14:07 +01:00
picohttpparser.h Add picohttpparser.{c.h} from https://github.com/h2o/picohttpparser 2022-10-20 15:49:27 +02:00
pool.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
portset.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:42:18 +01:00
quota.c REQUIRE should not have side effects 2022-07-05 13:04:17 -07:00
radix.c Move isc_mem_put to after node is checked for equality 2023-05-29 13:27:51 +10:00
random.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:42:18 +01:00
ratelimiter.c Don't use reference counting in isc_timer unit 2023-01-18 22:39:26 +01:00
regex.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
region.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
resource.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
result.c Limit isccc_cc_fromwire recursion depth 2023-09-07 19:50:27 +02:00
rwlock.c Update sources to Clang 15 formatting 2022-11-29 09:14:07 +01:00
safe.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
serial.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
siphash.c Accept 'in=NULL' with 'inlen=0' in isc_{half}siphash24 2023-01-10 18:36:08 +11:00
sockaddr.c De-duplicate __FILE__, __LINE__ 2022-10-17 16:00:26 +01:00
stats.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
stdio.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
stdtime.c Deduplicate time unit conversion factors 2022-11-25 14:16:09 +00:00
string.c Use strnstr implementation from FreeBSD if not provided by OS 2022-10-04 15:33:33 +11:00
symtab.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:42:18 +01:00
syslog.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
task.c Add isc_task_setquantum() and use it for post-init zone loading 2023-01-18 18:04:41 +01:00
task_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
taskpool.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
thread.c Remove redundant #include <isc/strerr.h> 2022-10-17 16:08:28 +01:00
time.c Deduplicate time unit conversion factors 2022-11-25 14:16:09 +00:00
timer.c Unlink the timer event before trying to purge it 2023-01-18 22:39:26 +01:00
timer_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
tls.c Take ownership of pointer before freeing 2023-09-01 14:03:49 +10:00
tls_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
tm.c Add FALLTHROUGH macro for __attribute__((fallthrough)) 2022-03-25 08:41:09 +01:00
trampoline.c Improve stability of the jemalloc workaround 2023-11-01 18:04:07 +01:00
trampoline_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
url.c Update the source code formatting using clang-format-17 2023-10-18 09:02:57 +02:00
utf8.c Update sources to Clang 15 formatting 2022-11-29 09:14:07 +01:00