From 9d2dd4e86e4903eb1c20f6e936c7ca2df1cdb90f Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 8 Aug 2012 11:33:17 +1000 Subject: process: use fork(), not vfork() From the man page: The vfork() function has the same effect as fork(2), except that the behavior is undefined if the process created by vfork() either modifies any data other than a variable of type pid_t used to store the return value from vfork(), or returns from the function in which vfork() was called, or calls any other function before successfully calling _exit(2) or one of the exec(3) family of functions. We modify data and we call functions other than _exit/exec. Signed-off-by: Peter Hutterer Reviewed-by: Chase Douglas Signed-off-by: Chase Douglas --- src/process.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/process.cpp b/src/process.cpp index debd92e..7df2b84 100644 --- a/src/process.cpp +++ b/src/process.cpp @@ -52,7 +52,7 @@ void xorg::testing::Process::Start(const std::string &program, const std::vector if (d_->pid != -1) throw std::runtime_error("Attempting to start an already started process"); - d_->pid = vfork(); + d_->pid = fork(); if (d_->pid == -1) { throw std::runtime_error("Failed to fork child process"); -- cgit v1.2.3