such as changes to protection permissions, unmapping, relocation to
another location, or shrinking the size.
+* The ISO C23 functions free_sized and free_aligned_sized are now
+ supported in <stdlib.h>.
+
Deprecated and removed features, and other changes affecting compatibility:
* Support for dumped heaps has been removed - malloc_set_state() now always
tst-aligned-alloc-random-thread-cross \
tst-alloc_buffer \
tst-calloc \
+ tst-free-aligned-sized \
+ tst-free-aligned-sized-trace \
tst-free-errno \
+ tst-free-sized \
+ tst-free-sized-trace \
tst-interpose-nothread \
tst-interpose-thread \
tst-malloc \
tests-special += $(objpfx)tst-mtrace.out
tests-special += $(objpfx)tst-dynarray-mem.out
tests-special += $(objpfx)tst-dynarray-fail-mem.out
+tests-special += $(objpfx)tst-free-aligned-sized-mtrace.out
+tests-special += $(objpfx)tst-free-sized-mtrace.out
endif
endif
endif
tst-aligned-alloc-random-thread-ENV = LD_PRELOAD=$(objpfx)tst-aligned_alloc-lib.so
tst-aligned-alloc-random-thread-cross-ENV = LD_PRELOAD=$(objpfx)tst-aligned_alloc-lib.so
tst-malloc-random-ENV = LD_PRELOAD=$(objpfx)tst-aligned_alloc-lib.so
+
+tst-free-aligned-sized-trace-ENV = MALLOC_TRACE=$(objpfx)tst-free-aligned-sized-mem.mtrace \
+ LD_PRELOAD=$(objpfx)libc_malloc_debug.so
+$(objpfx)tst-free-aligned-sized-mtrace.out: $(objpfx)tst-free-aligned-sized-trace.out
+ $(common-objpfx)malloc/mtrace $(objpfx)tst-free-aligned-sized-mem.mtrace > $@; \
+ $(evaluate-test)
+
+tst-free-sized-trace-ENV = MALLOC_TRACE=$(objpfx)tst-free-sized-mem.mtrace \
+ LD_PRELOAD=$(objpfx)libc_malloc_debug.so
+$(objpfx)tst-free-sized-mtrace.out: $(objpfx)tst-free-sized-trace.out
+ $(common-objpfx)malloc/mtrace $(objpfx)tst-free-sized-mem.mtrace > $@; \
+ $(evaluate-test)
GLIBC_2.33 {
mallinfo2;
}
+ GLIBC_2.43 {
+ free_aligned_sized;
+ free_sized;
+ }
GLIBC_PRIVATE {
# Internal startup hook for libpthread.
__libc_malloc_pthread_startup;
GLIBC_2.33 {
mallinfo2;
}
+ GLIBC_2.43 {
+ free_aligned_sized;
+ free_sized;
+ }
}
}
strong_alias (__debug_free, free)
+static void
+__debug_free_sized (void *mem, __attribute_maybe_unused__ size_t size)
+{
+ free (mem);
+}
+strong_alias (__debug_free_sized, free_sized)
+
+static void
+__debug_free_aligned_sized (void *mem, __attribute_maybe_unused__ size_t alignment,
+ __attribute_maybe_unused__ size_t size)
+{
+ free (mem);
+}
+strong_alias (__debug_free_aligned_sized, free_aligned_sized)
+
static void *
__debug_realloc (void *oldmem, size_t bytes)
{
compat_symbol (libc_malloc_debug, aligned_alloc, aligned_alloc, GLIBC_2_16);
compat_symbol (libc_malloc_debug, calloc, calloc, GLIBC_2_0);
compat_symbol (libc_malloc_debug, free, free, GLIBC_2_0);
+compat_symbol (libc_malloc_debug, free_aligned_sized, free_aligned_sized, GLIBC_2_43);
+compat_symbol (libc_malloc_debug, free_sized, free_sized, GLIBC_2_43);
compat_symbol (libc_malloc_debug, mallinfo2, mallinfo2, GLIBC_2_33);
compat_symbol (libc_malloc_debug, mallinfo, mallinfo, GLIBC_2_0);
compat_symbol (libc_malloc_debug, malloc_info, malloc_info, GLIBC_2_10);
return _mid_memalign (alignment, bytes);
}
+/* For ISO C23. */
+void
+weak_function
+free_sized (void *ptr, __attribute_maybe_unused__ size_t size)
+{
+ /* We do not perform validation that size is the same as the original
+ requested size at this time. We leave that to the sanitizers. We
+ simply forward to `free`. This allows existing malloc replacements
+ to continue to work. */
+
+ free (ptr);
+}
+
+/* For ISO C23. */
+void
+weak_function
+free_aligned_sized (void *ptr, __attribute_maybe_unused__ size_t alignment,
+ __attribute_maybe_unused__ size_t size)
+{
+ /* We do not perform validation that size and alignment is the same as
+ the original requested size and alignment at this time. We leave that
+ to the sanitizers. We simply forward to `free`. This allows existing
+ malloc replacements to continue to work. */
+
+ free (ptr);
+}
+
static void *
_mid_memalign (size_t alignment, size_t bytes)
{
--- /dev/null
+/* Test that free_aligned_sized works.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <mcheck.h>
+
+#define MTRACE mtrace()
+#include "tst-free-aligned-sized.c"
--- /dev/null
+/* Test that free_aligned_sized works.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+#include <stdlib.h>
+
+static int
+do_test (void)
+{
+#ifdef MTRACE
+ MTRACE;
+#endif
+
+ free_aligned_sized (NULL, 0, 0);
+
+ void *p = aligned_alloc (128, 1024);
+ free_aligned_sized (p, 128, 1024);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
--- /dev/null
+/* Test that free_aligned_sized works.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <mcheck.h>
+
+#define MTRACE mtrace()
+#include "tst-free-sized.c"
--- /dev/null
+/* Test that free_sized works.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+#include <stdlib.h>
+
+static int
+do_test (void)
+{
+#ifdef MTRACE
+ MTRACE;
+#endif
+
+ free_sized (NULL, 0);
+
+ void *p = malloc (128);
+ free_sized (p, 128);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
of the program's space is given back to the system when the process
terminates.
+@deftypefun void free_sized (void *@var{ptr}, size_t @var{size})
+@standards{ISO, stdlib.h}
+@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}}
+The @code{free_sized} function deallocates the block of memory pointed at
+by @var{ptr} that was previously allocated by @code{malloc}, @code{calloc}
+or @code{realloc}. The size @var{size} must match the previously requested
+total size provided to @code{malloc}, @code{calloc} or @code{realloc}.
+Attempting to deallocated memory allocated by @code{aligned_alloc},
+@code{memalign}, @code{posix_memalign}, @code{valloc} or @code{pvalloc} is
+undefined behavior. For @code{aligned_alloc}, @code{memalign} or
+@code{posix_memalign} use @code{free_aligned_sized} instead. Additionally
+it is also undefined behavior to call @code{free_sized} for allocations
+which the caller did not directly allocate but must still deallocate, such
+as the result of @code{strdup} or @code{strndup}. Instead continue using
+@code{free} for these cases.
+@end deftypefun
+
+@deftypefun void free_aligned_sized (void *@var{ptr}, size_t @var{alignment}, size_t @var{size})
+@standards{ISO, stdlib.h}
+@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}}
+The @code{free_aligned_sized} function deallocates the block of memory
+pointed at by @var{ptr} that was previously allocated by
+@code{aligned_alloc}, @code{memalign} or @code{posix_memalign}.
+The size @var{size} and alignment @var{alignment} must match the
+previously requested size and alignment provided to
+@code{aligned_alloc}, @code{memalign} or @code{posix_memalign}.
+@end deftypefun
+
@node Changing Block Size
@subsubsection Changing the Size of a Block
@cindex changing the size of a block (@code{malloc})
@table @code
@item aligned_alloc
+@item free_aligned_sized
+@item free_sized
@item malloc_usable_size
@item memalign
@item posix_memalign
/* Free a block allocated by `malloc', `realloc' or `calloc'. */
extern void free (void *__ptr) __THROW;
+#if __GLIBC_USE(ISOC23)
+/* Free a block allocated by `malloc', `realloc' or `calloc' but not
+ `aligned_alloc', `memalign', `posix_memalign', `valloc' or
+ `pvalloc'. SIZE must be equal to the original requested size
+ provided to `malloc', `realloc' or `calloc'. For `calloc' SIZE is
+ NMEMB elements * SIZE bytes. It is forbidden to call `free_sized'
+ for allocations which the caller did not directly allocate but
+ must still deallocate, such as `strdup' or `strndup'. Instead
+ continue using `free` for these cases. */
+extern void free_sized (void *__ptr, size_t __size) __THROW;
+
+/* Free a block allocated by `aligned_alloc', `memalign' or
+ `posix_memalign'. ALIGNMENT and SIZE must be the same as the values
+ provided to `aligned_alloc', `memalign' or `posix_memalign'. */
+extern void free_aligned_sized (void *__ptr, size_t __alignment, size_t __size)
+ __THROW;
+#endif
+
#ifdef __USE_MISC
/* Re-allocate the previously allocated block in PTR, making the new
block large enough for NMEMB elements of SIZE bytes each. */
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.17 realloc F
GLIBC_2.17 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 mcheck_pedantic F
GLIBC_2.2 posix_memalign F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.32 realloc F
GLIBC_2.32 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.4 pvalloc F
GLIBC_2.4 realloc F
GLIBC_2.4 valloc F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.4 pvalloc F
GLIBC_2.4 realloc F
GLIBC_2.4 valloc F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.29 realloc F
GLIBC_2.29 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 realloc F
GLIBC_2.2 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 mcheck_pedantic F
GLIBC_2.2 posix_memalign F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.36 pvalloc F
GLIBC_2.36 realloc F
GLIBC_2.36 valloc F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.4 pvalloc F
GLIBC_2.4 realloc F
GLIBC_2.4 valloc F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 mcheck_pedantic F
GLIBC_2.2 posix_memalign F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.18 realloc F
GLIBC_2.18 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.18 realloc F
GLIBC_2.18 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 mcheck_pedantic F
GLIBC_2.2 posix_memalign F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 mcheck_pedantic F
GLIBC_2.2 posix_memalign F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 mcheck_pedantic F
GLIBC_2.2 posix_memalign F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 mcheck_pedantic F
GLIBC_2.2 posix_memalign F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.35 pvalloc F
GLIBC_2.35 realloc F
GLIBC_2.35 valloc F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 mcheck_pedantic F
GLIBC_2.2 posix_memalign F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 mcheck_pedantic F
GLIBC_2.2 posix_memalign F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.3 realloc F
GLIBC_2.3 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.17 realloc F
GLIBC_2.17 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.33 pvalloc F
GLIBC_2.33 realloc F
GLIBC_2.33 valloc F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.27 realloc F
GLIBC_2.27 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 mcheck_pedantic F
GLIBC_2.2 posix_memalign F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 realloc F
GLIBC_2.2 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 realloc F
GLIBC_2.2 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 realloc F
GLIBC_2.2 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 mcheck_pedantic F
GLIBC_2.2 posix_memalign F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2 realloc F
GLIBC_2.2 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.2.5 realloc F
GLIBC_2.2.5 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.42 ulabs F
GLIBC_2.42 ullabs F
GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F
GLIBC_2.43 memalignment F
GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.16 realloc F
GLIBC_2.16 valloc F
GLIBC_2.33 mallinfo2 F
+GLIBC_2.43 free_aligned_sized F
+GLIBC_2.43 free_sized F