aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-user/syscall.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 64d700d..40c0ed8 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -2800,6 +2800,10 @@ static int do_fork(CPUState *env, unsigned int flags, abi_ulong newsp,
sigset_t sigmask;
#endif
+ /* Emulate vfork() with fork() */
+ if (flags & CLONE_VFORK)
+ flags &= ~(CLONE_VFORK | CLONE_VM);
+
if (flags & CLONE_VM) {
#if defined(USE_NPTL)
new_thread_info info;