use libc-internal malloc for pthread_atfork
authorRich Felker <dalias@aerifal.cx>
Sat, 17 Dec 2022 21:00:19 +0000 (16:00 -0500)
committerRich Felker <dalias@aerifal.cx>
Sat, 17 Dec 2022 21:00:19 +0000 (16:00 -0500)
while no lock is held here making it a lock-order issue, replacement
malloc is likely to want to use pthread_atfork, possibly making the
call to malloc infinitely recursive.

even if not, there is no reason to prefer an application-provided
malloc here.

src/thread/pthread_atfork.c

index 6d348ac..26d3254 100644 (file)
@@ -3,6 +3,11 @@
 #include "libc.h"
 #include "lock.h"
 
+#define malloc __libc_malloc
+#define calloc undef
+#define realloc undef
+#define free undef
+
 static struct atfork_funcs {
        void (*prepare)(void);
        void (*parent)(void);