This is an automated email from the git hooks/post-receive script. wrar-guest pushed a commit to branch master in repository xboxdrv.
commit 5e49f45d1b6cb00b73e24f14303f2496e45d7380 Author: Evan Purkhiser <[email protected]> Date: Fri Aug 30 02:13:25 2013 -0400 Buttonevent exec: Double fork to avoid zombies --- src/buttonevent/exec_button_event_handler.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/buttonevent/exec_button_event_handler.cpp b/src/buttonevent/exec_button_event_handler.cpp index 141388b..99ebe89 100644 --- a/src/buttonevent/exec_button_event_handler.cpp +++ b/src/buttonevent/exec_button_event_handler.cpp @@ -21,6 +21,7 @@ #include <boost/tokenizer.hpp> #include <errno.h> #include <string.h> +#include <sys/wait.h> #include "log.hpp" @@ -51,9 +52,17 @@ ExecButtonEventHandler::init(UInput& uinput, int slot, bool extra_devices) void ExecButtonEventHandler::send(UInput& uinput, bool value) { - if (value) + if (!value) { + return; + } + + pid_t tmp_pid = fork(); + if (tmp_pid == 0) + { + // Double fork to reap the child and disown the execed process pid_t pid = fork(); + if (pid == 0) { char** argv = static_cast<char**>(malloc(sizeof(char*) * (m_args.size() + 1))); @@ -69,7 +78,11 @@ ExecButtonEventHandler::send(UInput& uinput, bool value) _exit(EXIT_FAILURE); } } + + _exit(EXIT_SUCCESS); } + + waitpid(tmp_pid, NULL, 0); } std::string -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/xboxdrv.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

