aports/main/dbus/avoid-opendir-between-fork-exec.patch
Rasmus Thomsen b602ab703e main/dbus: fix deadlock
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()
2020-09-03 15:38:01 -06:00

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