mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-01-19 23:51:58 +01:00
This avoids calling opendir() which mallocs, and as such isn't async-signal safe, which can lead to deadlocks if called between fork() and exec()
19 lines
644 B
Diff
19 lines
644 B
Diff
Author: Rasmus Thomsen <oss@cogitri.dev>
|
|
Upstream: No
|
|
Reason: The code inside the `#ifdef __linux__` calls opendir. This can
|
|
lead to deadlocks when act_on_fds_3_and_up is called between fork&exec since
|
|
opendir mallocs which isn't async signal safe
|
|
diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c
|
|
index 0288dbc9..e585136f 100644
|
|
--- a/dbus/dbus-sysdeps-unix.c
|
|
+++ b/dbus/dbus-sysdeps-unix.c
|
|
@@ -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
|