mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-13 17:18:01 +03:00
208a044a54
Child processes don't always reach _exit(); if they die from a signal, then any messages should still be accurate. Most users either expect a 0 status (thankfully, if status==0, then WIFEXITED(status) is true and WEXITSTATUS(status)==0 for all known platforms) or were filtering on WIFEXITED before printing a status, but a few were missing this check. Additionally, nwfilter_ebiptables_driver was making an assumption that works on Linux (where WEXITSTATUS shifts and WTERMSIG just masks) but fails on other platforms (where WEXITSTATUS just masks and WTERMSIG shifts). * src/util/command.h (virCommandTranslateStatus): New helper. * src/libvirt_private.syms (command.h): Export it. * src/util/command.c (virCommandTranslateStatus): New function. (virCommandWait): Use it to also diagnose status from signals. * src/security/security_apparmor.c (load_profile): Likewise. * src/storage/storage_backend.c (virStorageBackendQEMUImgBackingFormat): Likewise. * src/util/util.c (virExecDaemonize, virRunWithHook) (virFileOperation, virDirCreate): Likewise. * daemon/remote.c (remoteDispatchAuthPolkit): Likewise. * src/nwfilter/nwfilter_ebiptables_driver.c (ebiptablesExecCLI): Likewise. |
||
---|---|---|
.. | ||
.gitignore | ||
dispatch.c | ||
dispatch.h | ||
libvirtd.aug | ||
libvirtd.c | ||
libvirtd.conf | ||
libvirtd.h | ||
libvirtd.init.in | ||
libvirtd.logrotate.in | ||
libvirtd.lxc.logrotate.in | ||
libvirtd.pod.in | ||
libvirtd.policy-0 | ||
libvirtd.policy-1 | ||
libvirtd.qemu.logrotate.in | ||
libvirtd.sasl | ||
libvirtd.stp | ||
libvirtd.sysconf | ||
libvirtd.uml.logrotate.in | ||
Makefile.am | ||
mdns.c | ||
mdns.h | ||
probes.d | ||
qemu_dispatch_args.h | ||
qemu_dispatch_prototypes.h | ||
qemu_dispatch_ret.h | ||
qemu_dispatch_table.h | ||
remote_dispatch_args.h | ||
remote_dispatch_prototypes.h | ||
remote_dispatch_ret.h | ||
remote_dispatch_table.h | ||
remote_generate_stubs.pl | ||
remote.c | ||
remote.h | ||
stream.c | ||
stream.h | ||
test_libvirtd.aug | ||
THREADING.txt |