mirror of https://github.com/proxmox/mirror_qemu
iohandler.c: Properly initialize sigaction struct
The code in qemu_init_child_watch() wasn't clearing the 'struct sigaction' before passing it to sigaction(); this meant that we would block a random set of signals while executing the SIGCHLD handler. Initialize properly by using memset() on the struct, as we do in similar cases elsewhere. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>master
parent
78a4b8d205
commit
aef553fdca
|
@ -191,6 +191,7 @@ static void qemu_init_child_watch(void)
|
||||||
struct sigaction act;
|
struct sigaction act;
|
||||||
sigchld_bh = qemu_bh_new(sigchld_bh_handler, NULL);
|
sigchld_bh = qemu_bh_new(sigchld_bh_handler, NULL);
|
||||||
|
|
||||||
|
memset(&act, 0, sizeof(act));
|
||||||
act.sa_handler = sigchld_handler;
|
act.sa_handler = sigchld_handler;
|
||||||
act.sa_flags = SA_NOCLDSTOP;
|
act.sa_flags = SA_NOCLDSTOP;
|
||||||
sigaction(SIGCHLD, &act, NULL);
|
sigaction(SIGCHLD, &act, NULL);
|
||||||
|
|
Loading…
Reference in New Issue