diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 64d700d8f3f1342e9ac3c500e8d6c2c48b97f752..40c0ed83e871f52bfc67570e137ec6ca7c6eb2fc 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;