You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/linux-user
Ricardo Jesus b0d313dcae linux-user: add option to intercept execve() syscalls
This patch is based on the original work by Petros Angelatos [1], which
I have updated to the current git master. The following commit message
is largely based on Petros' original message.

In order for one to use QEMU user mode emulation under a chroot, it is
required to use binfmt_misc. This can be avoided by QEMU never doing a
raw execve() to the host system.

Introduce a new option, --execve, that uses the current QEMU interpreter
to intercept execve().

qemu_execve() will prepend the interpreter path, similar to what
binfmt_misc would do, and then pass the modified execve() to the host.

[1] https://patchwork.ozlabs.org/patch/582756/

Signed-off-by: Ricardo Jesus <rj.bcjesus@gmail.com>
2 years ago
..
aarch64 linux-user: Provide MADV_* definitions 2 years ago
alpha linux-user: Provide MADV_* definitions 2 years ago
arm linux-user: Provide MADV_* definitions 2 years ago
cris linux-user: Provide MADV_* definitions 2 years ago
generic linux-user: Provide MADV_* definitions 2 years ago
hexagon linux-user: Provide MADV_* definitions 2 years ago
hppa linux-user/hppa: Detect glibc ABORT_INSTRUCTION and EXCP_BREAK handler 2 years ago
i386 linux-user: Add guest memory layout to exception dump 2 years ago
include linux-user/host/s390: Add vector instructions to host_signal_write() 2 years ago
loongarch64 linux-user: Provide MADV_* definitions 2 years ago
m68k linux-user: Provide MADV_* definitions 2 years ago
microblaze linux-user: Provide MADV_* definitions 2 years ago
mips linux-user: Provide MADV_* definitions 2 years ago
mips64 linux-user: Provide MADV_* definitions 2 years ago
nios2 linux-user: Provide MADV_* definitions 2 years ago
openrisc linux-user: Provide MADV_* definitions 2 years ago
ppc linux-user: Provide MADV_* definitions 2 years ago
riscv linux-user: Provide MADV_* definitions 2 years ago
s390x linux-user/s390x: Save/restore fpc when handling a signal 2 years ago
sh4 target/sh4: Fix TB_FLAG_UNALIGN 2 years ago
sparc linux-user: Provide MADV_* definitions 2 years ago
x86_64 linux-user: Provide MADV_* definitions 2 years ago
xtensa linux-user: Provide MADV_* definitions 2 years ago
cpu_loop-common.h linux-user: Add guest memory layout to exception dump 2 years ago
elfload.c linux-user: Set ELF_BASE_PLATFORM for MIPS 2 years ago
errnos.c.inc linux-user: Simplify host <-> target errno conversion using macros 3 years ago
exit.c linux-user: Don't include gdbstub.h in qemu.h 3 years ago
fd-trans.c linux-user: Fix inotify on aarch64 3 years ago
fd-trans.h fd-trans: Fix race condition on reallocation of the translation table. 3 years ago
flat.h linux-user/: fix some comment spelling errors 4 years ago
flatload.c linux-user/flatload.c: Fix setting of image_info::end_code 2 years ago
ioctls.h linux-user: remove conditionals for many fs.h ioctls 2 years ago
linux_loop.h linux-user: implement more loop ioctls 3 years ago
linuxload.c linux-user: Clean up arg_start/arg_end confusion 3 years ago
loader.h linux-user: Split loader-related prototypes into loader.h 3 years ago
main.c linux-user: add option to intercept execve() syscalls 2 years ago
meson.build user: move common-user includes to a subdirectory of {bsd,linux}-user/ 3 years ago
mmap.c add 32-bit mmap support 2 years ago
qemu.h linux-user: Honor PT_GNU_STACK 2 years ago
semihost.c semihosting: Remove qemu_semihosting_console_outs 2 years ago
signal-common.h linux-user: Add missing signals in strace output 2 years ago
signal.c linux-user: Add missing signals in strace output 2 years ago
socket.h Supply missing header guards 6 years ago
strace.c add 32-bit mmap support 2 years ago
strace.h linux-user: Have do_syscall() use CPUArchState* instead of void* 3 years ago
strace.list linux-user: Add strace output for timer_settime64() syscall 2 years ago
syscall.c linux-user: add option to intercept execve() syscalls 2 years ago
syscall_defs.h add 32-bit mmap support 2 years ago
syscall_types.h linux-user: implement more loop ioctls 3 years ago
target_flat.h Supply missing header guards 6 years ago
thunk.c linux-user: Move thunk.c from top-level 3 years ago
trace-events linux-user: Rename user_force_sig tracepoint to match function name 3 years ago
trace.h trace: switch position of headers to what Meson requires 4 years ago
uaccess.c linux-user: Split linux-user internals out of qemu.h 3 years ago
uname.c linux-user: Remove pointless CPU{ARCH}State casts 3 years ago
uname.h linux-user: Have do_syscall() use CPUArchState* instead of void* 3 years ago
user-internals.h linux-user: add option to intercept execve() syscalls 2 years ago
user-mmap.h add 32-bit mmap support 2 years ago
vm86.c linux-user: Split linux-user internals out of qemu.h 3 years ago