$OpenBSD$ --- dbus/dbus-sysdeps-unix.c.orig Wed Apr 22 17:32:26 2009 +++ dbus/dbus-sysdeps-unix.c Wed Apr 22 18:56:49 2009 @@ -2860,6 +2860,7 @@ _dbus_get_autolaunch_address (DBusString *address, int i; DBusString uuid; dbus_bool_t retval; + sigset_t new_set, old_set; _DBUS_ASSERT_ERROR_IS_CLEAR (error); retval = FALSE; @@ -2869,6 +2870,10 @@ _dbus_get_autolaunch_address (DBusString *address, _DBUS_SET_OOM (error); return FALSE; } + + sigemptyset(&new_set); + sigaddset(&new_set, SIGCHLD); + sigprocmask(SIG_BLOCK, &new_set, &old_set); if (!_dbus_get_local_machine_uuid_encoded (&uuid)) { @@ -2963,6 +2968,8 @@ _dbus_get_autolaunch_address (DBusString *address, for (i = 3; i < maxfds; i++) close (i); + sigprocmask(SIG_SETMASK, &old_set, NULL); + execv (DBUS_BINDIR "/dbus-launch", argv); /* failed, try searching PATH */ @@ -3021,6 +3028,8 @@ _dbus_get_autolaunch_address (DBusString *address, retval = TRUE; out: + sigprocmask(SIG_SETMASK, &old_set, NULL); + if (retval) _DBUS_ASSERT_ERROR_IS_CLEAR (error); else