From 919bf1489abe634aefbcf3532617e7c5987c56ab Mon Sep 17 00:00:00 2001 From: Wilco Dijkstra Date: Tue, 27 May 2025 13:32:45 +0000 Subject: [PATCH] malloc: Fix malloc init order __ptmalloc_init was called too early in __libc_early_init: it uses __libc_initial which is not set yet. Fix this by moving initialization to the end of __libc_early_init. Reviewed-by: Florian Weimer --- elf/libc_early_init.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/elf/libc_early_init.c b/elf/libc_early_init.c index 24b99d82fe..4da170a7ca 100644 --- a/elf/libc_early_init.c +++ b/elf/libc_early_init.c @@ -33,9 +33,6 @@ _Bool __libc_initial; void __libc_early_init (_Bool initial) { - /* Initialize system malloc. */ - call_function_static_weak (__ptmalloc_init); - /* Initialize ctype data. */ __ctype_init (); @@ -53,4 +50,7 @@ __libc_early_init (_Bool initial) #if ENABLE_ELISION_SUPPORT __lll_elision_init (); #endif + + /* Initialize system malloc (needs __libc_initial to be set). */ + call_function_static_weak (__ptmalloc_init); } -- 2.47.2