summaryrefslogtreecommitdiffstats
path: root/linux-user/arm
diff options
context:
space:
mode:
authorPeter Maydell2016-03-01 17:33:02 +0100
committerRiku Voipio2016-05-27 13:50:39 +0200
commitfd6f7798ac3066ad9e3956defd37521830197666 (patch)
tree664c46d6a83404b5556d66b8e10f0d30e2d333a6 /linux-user/arm
parentlinux-user: x86_64: Don't use 16-bit UIDs (diff)
downloadqemu-fd6f7798ac3066ad9e3956defd37521830197666.tar.gz
qemu-fd6f7798ac3066ad9e3956defd37521830197666.tar.xz
qemu-fd6f7798ac3066ad9e3956defd37521830197666.zip
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 'linux-user/arm')
0 files changed, 0 insertions, 0 deletions