--- dbus-sysdeps-unix.c 2008-02-26 17:02:27.000000000 +0100 +++ /tmp/dbus-sysdeps-unix.c 2008-05-15 23:29:41.000000000 +0200 @@ -2844,7 +2844,9 @@ if (pid == 0) { /* child process */ + int maxfds = getdtablesize(); int fd = open ("/dev/null", O_RDWR); + if (fd == -1) /* huh?! can't open /dev/null? */ _exit (1); @@ -2865,9 +2867,10 @@ if (dup2 (errors_pipe[WRITE_END], 2) == -1) _exit (1); - close (fd); - close (address_pipe[WRITE_END]); - close (errors_pipe[WRITE_END]); + /* close all inherited fds */ + for( i = 0; i2) + close(i); execv (DBUS_BINDIR "/dbus-launch", argv);