]> git.ipfire.org Git - thirdparty/qemu.git/commit - linux-user/syscall.c
linux-user: Use safe_syscall for execve syscall
authorTimothy E Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
Thu, 12 May 2016 17:47:50 +0000 (18:47 +0100)
committerRiku Voipio <riku.voipio@linaro.org>
Fri, 27 May 2016 11:50:38 +0000 (14:50 +0300)
commitffdcbe223d23461669869e85786145cce65e1e8c
tree67fa1fb1e1c3a553b2206cbab5be761a0ac86204
parent4af80a3783950380df85ecca78aea3e3bad2e846
linux-user: Use safe_syscall for execve syscall

Wrap execve() in the safe-syscall handling. Although execve() is not
an interruptible syscall, it is a special case: if we allow a signal
to happen before we make the host$ syscall then we will 'lose' it,
because at the point of execve the process leaves QEMU's control.  So
we use the safe syscall wrapper to ensure that we either take the
signal as a guest signal, or else it does not happen before the
execve completes and makes it the other program's problem.

The practical upshot is that without this SIGTERM could fail to
terminate the process.

Signed-off-by: Timothy Edward Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
Message-id: 1441497448-32489-25-git-send-email-T.E.Baldwin99@members.leeds.ac.uk
[PMM: expanded commit message to explain in more detail why this is
 needed, and add comment about it too]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
linux-user/syscall.c