[PATCH 02/28] elf: Implement __rtld_malloc_is_full
Florian Weimer
fweimer@redhat.com
Thu Oct 1 16:31:42 GMT 2020
In some cases, it is difficult to determine the kind of malloc
based on the execution context, so a function to determine that
is helpful.
---
elf/dl-minimal.c | 8 ++++++++
include/rtld-malloc.h | 4 ++++
2 files changed, 12 insertions(+)
diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c
index 7c64e24c87..dc79f02458 100644
--- a/elf/dl-minimal.c
+++ b/elf/dl-minimal.c
@@ -59,6 +59,14 @@ __rtld_malloc_init_stubs (void)
__rtld_realloc = &rtld_realloc;
}
+bool
+__rtld_malloc_is_full (void)
+{
+ /* The caller assumes that there is an active malloc. */
+ assert (__rtld_malloc != NULL);
+ return __rtld_malloc != &rtld_malloc;
+}
+
/* Lookup NAME at VERSION in the scope of MATCH. */
static void *
lookup_malloc_symbol (struct link_map *main_map, const char *name,
diff --git a/include/rtld-malloc.h b/include/rtld-malloc.h
index b026a3270c..54f53f7888 100644
--- a/include/rtld-malloc.h
+++ b/include/rtld-malloc.h
@@ -66,6 +66,10 @@ realloc (void *ptr, size_t size)
implementation. */
void __rtld_malloc_init_stubs (void) attribute_hidden;
+/* Return false if the active malloc is the ld.so minimal malloc, true
+ if it is the full implementation from libc.so. */
+_Bool __rtld_malloc_is_full (void) attribute_hidden;
+
/* Called shortly before the final self-relocation (when RELRO
variables are still writable) to activate the real malloc
implementation. MAIN_MAP is the link map of the executable. */
--
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill
More information about the Libc-alpha
mailing list