summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2012-08-08 11:33:17 +1000
committerChase Douglas <chase.douglas@canonical.com>2012-08-08 09:10:53 -0700
commit9d2dd4e86e4903eb1c20f6e936c7ca2df1cdb90f (patch)
tree1717123f19e47b8ebc58c0a96d11e0be832ea47f
parent714341ae8136ac958ec555694a23dadf80b1c852 (diff)
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 <peter.hutterer@who-t.net> Reviewed-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
-rw-r--r--src/process.cpp2
1 files changed, 1 insertions, 1 deletions
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");