aboutsummaryrefslogtreecommitdiff
path: root/exec.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2016-03-01 16:33:02 +0000
committerRiku Voipio <riku.voipio@linaro.org>2016-05-27 14:50:39 +0300
commitfd6f7798ac3066ad9e3956defd37521830197666 (patch)
tree664c46d6a83404b5556d66b8e10f0d30e2d333a6 /exec.c
parent716f3fbef26b583d207f8b7c98cadfa9dda69c6b (diff)
linux-user: Use direct syscalls for setuid(), etc
On Linux the setuid(), setgid(), etc system calls have different semantics from the libc functions. The libc functions follow POSIX and update the credentials for all threads in the process; the system calls update only the thread which makes the call. (This impedance mismatch is worked around in libc by signalling all threads to tell them to do a syscall, in a byzantine and fragile way; see http://ewontfix.com/17/.) Since in linux-user we are trying to emulate the system call semantics, we must implement all these syscalls to directly call the underlying host syscall, rather than calling the host libc function. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Diffstat (limited to 'exec.c')
0 files changed, 0 insertions, 0 deletions