blob: f97f9af8fdb72b78bc6d324725a02ba2033a8804 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
mistranslation: 0.413
device: 0.389
instruction: 0.383
graphic: 0.286
network: 0.262
socket: 0.231
semantic: 0.163
vnc: 0.096
boot: 0.087
KVM: 0.034
other: 0.031
assembly: 0.029
qemu-user doesn't block target signals on entry to signal hanlder.
Upon entry to a target signal handler the function process_pending_signals in linux-user/signal.c block the appropriate host signals, but signals already received and queued by Qemu are not blocked. If multiple signals arrive in quick succession this results incorrect recursion in the target signal handler.
The attached test case my be run as:
$ (sleep 2 ; echo) | qemu-i386 ./a.out
.................. Recursion in signal handler!
qemu: uncaught target signal 6 (Aborted) - core dumped
The patches to block signals on entry to the signal handler have now been applied to master.
|