bind9/lib/isc
Ondřej Surý d61712d14e Stop using malloc_usable_size and malloc_size
Although the nanual page of malloc_usable_size says:

    Although the excess bytes can be over‐written by the application
    without ill effects, this is not good programming practice: the
    number of excess bytes in an allocation depends on the underlying
    implementation.

it looks like the premise is broken with _FORTIFY_SOURCE=3 on newer
systems and it might return a value that causes program to stop with
"buffer overflow" detected from the _FORTIFY_SOURCE.  As we do have own
implementation that tracks the allocation size that we can use to track
the allocation size, we can stop relying on this introspection function.

Also the newer manual page for malloc_usable_size changed the NOTES to:

    The value returned by malloc_usable_size() may be greater than the
    requested size of the allocation because of various internal
    implementation details, none of which the programmer should rely on.
    This function is intended to only be used for diagnostics and
    statistics; writing to the excess memory without first calling
    realloc(3) to resize the allocation is not supported.  The returned
    value is only valid at the time of the call.

Remove usage of both malloc_usable_size() and malloc_size() to be on the
safe size and only use the internal size tracking mechanism when
jemalloc is not available.
2024-08-26 15:00:44 +00:00
..
include Use clang-format-19 to update formatting 2024-08-22 09:21:55 +02:00
netmgr Use clang-format-19 to update formatting 2024-08-22 09:21:55 +02:00
.gitignore Add support for User Statically Defined Tracing (USDT) probes 2023-08-21 18:39:53 +02:00
ascii.c Consolidate some ASCII tables in isc/ascii and isc/hex 2022-09-12 12:18:57 +01:00
assertions.c Ad-hoc backtrace logging with isc_backtrace_log() 2023-03-29 10:47:53 +00:00
async.c Cleanup the __tsan_acquire/__tsan_release 2023-07-28 08:59:08 +02:00
async_p.h Change the isc_async API to use cds_wfcqueue internally 2023-05-12 14:16:25 +02:00
backtrace.c Convert all categories and modules into static lists 2024-08-20 12:50:39 +00:00
base32.c Silence uninitialized value false positives 2023-03-08 22:40:03 +00:00
base64.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:33:43 +01:00
commandline.c Apply the isc_mem_cget semantic patch 2023-08-31 22:08:35 +02:00
condition.c De-duplicate some calls to strerror_r() 2022-10-17 11:58:26 +01:00
counter.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
dir.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
entropy.c Switch the CSPRNG function from RAND_bytes() to uv_random() 2022-09-26 15:13:11 +02: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:12:45 +01:00
errno2result.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
error.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
file.c Remove logging context (isc_log_t) from the public namespace 2024-08-20 12:50:39 +00:00
fips.c Define isc_fips_mode() and isc_fips_set_mode() 2023-04-03 12:05:28 +10:00
getaddresses.c Move bind9_getaddresses() to isc_getaddresses() 2023-02-21 13:12:26 +00:00
hash.c Implement incremental version of isc_hash32 and isc_hash64 2023-09-12 16:17:06 +02:00
hashmap.c Skip already rehashed positions in the old hashmap table 2024-08-14 15:19:04 +00:00
heap.c Apply the isc_mem_cget semantic patch 2023-08-31 22:08:35 +02:00
hex.c Consolidate some ASCII tables in isc/ascii and isc/hex 2022-09-12 12:18:57 +01:00
histo.c Check for atomic operations consistency in checklibs.sh 2024-01-03 17:04:31 +00:00
hmac.c NetBSD has added 'hmac' to libc so rename out uses of hmac 2023-12-13 22:27:38 +00:00
ht.c Fix case insensitive matching in isc_ht hash table implementation 2024-02-11 09:36:56 +01:00
httpd.c Properly attach/detach isc_httpd in case read ends earlier than send 2024-05-15 12:22:10 +02:00
interfaceiter.c Remove code to read and parse /proc/net/if_inet6 on Linux 2024-08-19 09:42:55 +00:00
iterated_hash.c Remove checks for OPENSSL_API_LEVEL define 2024-08-06 15:17:48 +02:00
jemalloc_shim.h Stop using malloc_usable_size and malloc_size 2024-08-26 15:00:44 +00:00
job.c Add tracing probes to the isc_job unit 2023-08-21 18:39:53 +02:00
job_p.h Use proper padding instead of using alignas() 2024-02-08 10:54:35 +01:00
lex.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
lib.c Use single logging context for everything 2024-08-20 12:50:39 +00:00
log.c Add isc_log_createandusechannel() function to simplify usage 2024-08-20 12:50:39 +00:00
loop.c Remove logging context (isc_log_t) from the public namespace 2024-08-20 12:50:39 +00:00
loop_p.h Remove isc_qsbr (we are using liburcu instead) 2023-05-12 20:48:31 +01:00
Makefile.am remove the crc64 implementation 2024-08-05 11:21:25 +00:00
managers.c remove isc_task completely 2023-02-16 18:35:32 +01:00
md.c Call ERR_clear_error on EVP_MD_fetch or EVP_##alg error 2023-09-06 00:28:56 +00:00
mem.c Call rcu_barrier() in the isc_mem_destroy() just once 2024-08-05 10:24:47 +00:00
mem_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
meminfo.c Properly compute the physical memory size 2024-07-31 05:55:30 +00:00
mutex.c Fix PTHREAD_MUTEX_ADAPTIVE_NP and PTHREAD_MUTEX_ERRORCHECK_NP usage 2024-08-05 07:31:39 +00:00
mutex_p.h Use library constructor to create default mutex attr once 2022-07-13 13:19:32 +02:00
mutexblock.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
net.c Remove logging context (isc_log_t) from the public namespace 2024-08-20 12:50:39 +00:00
netaddr.c Update the source code formatting using clang-format-17 2023-10-17 17:47:46 +02:00
netscope.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
nonce.c Switch the CSPRNG function from RAND_bytes() to uv_random() 2022-09-26 15:13:11 +02:00
openssl_shim.c Move the dst__openssl_toresult to isc_tls unit 2024-08-08 11:59:41 +02:00
openssl_shim.h Move the dst__openssl_toresult to isc_tls unit 2024-08-08 11:59:41 +02:00
os.c Add isc_os_umask() function to get current umask 2023-03-31 12:52:59 +00: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 18 formatting 2024-04-23 13:11:52 +02:00
picohttpparser.h Add picohttpparser.{c.h} from https://github.com/h2o/picohttpparser 2022-10-14 11:26:54 +02:00
portset.c Use designated initializers instead of memset()/MEM_ZERO for structs 2022-10-05 16:44:05 +02:00
probes.d Add tracing probes to the isc_job unit 2023-08-21 18:39:53 +02:00
proxy2.c Add PROXYv2 header utilities 2023-12-06 15:15:24 +02:00
quota.c Clarify that cds_wfcq_dequeue_blocking() doesn't block if empty 2024-08-05 07:30:10 +00:00
radix.c Refactor isc_radix_create to return void 2023-10-13 14:44:40 +02:00
random.c Move the isc_random API initialization to the thread_local variable 2023-04-27 12:38:53 +02:00
ratelimiter.c Improve isc_refcount with initializer and implicit destroy 2023-09-24 10:08:56 +02:00
regex.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
region.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
result.c Apply SKR bundle on rekey 2024-08-22 08:21:52 +02:00
rwlock.c Add tracing probes to the custom isc_rwlock implementation 2023-08-21 18:39:53 +02: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
signal.c Fix a crash when dig or host receive a signal 2023-03-31 09:52:54 +00:00
sockaddr.c Add helper function isc_sockaddr_disabled 2024-06-03 18:34:31 +10:00
stats.c Return the old counter value in isc_stats_increment 2024-05-10 12:08:52 +03:00
stdio.c Apply the SET_IF_NOT_NULL() semantic patch 2023-08-15 12:21:41 +02:00
stdtime.c Change the NS_PER_SEC (and friends) from enum to static const 2024-08-19 09:08:55 +00:00
string.c Explain <isc/strerr.h> a little more 2023-02-15 16:44:09 +00:00
symtab.c Apply the isc_mem_cget semantic patch 2023-08-31 22:08:35 +02:00
syslog.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
tests Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
thread.c Cleanup the __tsan_acquire/__tsan_release 2023-07-28 08:59:08 +02:00
tid.c Make dns_dispatch bound to threads 2023-09-16 07:32:17 +02:00
time.c Change the NS_PER_SEC (and friends) from enum to static const 2024-08-19 09:08:55 +00:00
timer.c use a thread-local variable to get the current running loop 2024-04-02 10:35:56 +02:00
tls.c Convert all categories and modules into static lists 2024-08-20 12:50:39 +00:00
tm.c Replace DE_CONST(k, v) with v = UNCONST(k) macro 2023-04-03 10:25:56 +00:00
url.c Update the source code formatting using clang-format-17 2023-10-17 17:47:46 +02:00
utf8.c Update sources to Clang 15 formatting 2022-11-29 08:54:34 +01:00
uv.c Add isc_mem_callocate() for safer array allocation 2023-06-27 12:38:09 +02:00
work.c Improve the Userspace RCU integration 2023-04-27 12:38:53 +02:00
xml.c Use xmlMemSetup() instead of xmlGcMemSetup() 2024-04-18 10:53:31 +02:00