aboutsummaryrefslogtreecommitdiffstats
path: root/main/dbus/avoid-opendir-between-fork-exec.patch
blob: 44b03fbd5b4f74399dc255419b7187590dbc5239 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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