mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-04-19 09:00:49 +02:00
disable fork-malloc-exec for non-glibc-systems
Calling malloc() after fork is undefined behaviour if the process is multi-threaded. locks held by a thread on fork() will never be released. malloc() is usally protected by a lock and can therefore deadlock. glibc is known not to deadlock in this case. This commit does not rule out other problems on glibc-systems, but fixes an issue on musl-libc-systems. Only restricting to async-signal safe functions between fork() and exec() prevents undefined behaviour for sure. See signal-safety(7).
This commit is contained in:
parent
bf51a3169c
commit
3fab06d68f
1 changed files with 1 additions and 1 deletions
|
|
@ -4742,7 +4742,7 @@ act_on_fds_3_and_up (void (*func) (int fd))
|
|||
{
|
||||
int maxfds, i;
|
||||
|
||||
#ifdef __linux__
|
||||
#if defined(__linux__) && defined(__GLIBC__)
|
||||
DIR *d;
|
||||
|
||||
/* On Linux we can optimize this a bit if /proc is available. If it
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue