blob: ec360a8f6ee2b41572b94be9f04fd810432c9243 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
|
qemu-user reports wrong fault_addr in signal handler
When a SEGV signal occurs and si_addr of the info struct is nil, qemu still tries to translate the address from host to guest (handle_cpu_signal in accel/tcg/user-exec.c). This means, that the actual signal handler, will receive a fault_addr that is something like 0xffffffffbf709000.
I was able to get this to happen, by branching to a non canonical address on aarch64.
I used 5.2 (commit: 553032db17). However, building from source, this only seems to happen, if I use the same configure flags as the debian build:
../configure --static --target-list=aarch64-linux-user --disable-system --enable-trace-backends=simple --disable-linux-io-uring --disable-pie --extra-cflags="-fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2" --extra-ldflags="-Wl,-z,relro -Wl,--as-needed"
Let me know, if you need more details.
|