libvirt/daemon
Eric Blake a11bd2e6cc event: fix event-handling data race
This bug has been present since before the time that commit
f8a519 (Dec 2008) tried to make the dispatch loop re-entrant.

Dereferencing eventLoop.handles outside the lock risks crashing, since
any other thread could have reallocated the array in the meantime.
It's a narrow race window, however, and one that would have most
likely resulted in passing bogus data to the callback rather than
actually causing a segv, which is probably why it has gone undetected
this long.

* daemon/event.c (virEventDispatchHandles): Cache data while
inside the lock, as the array might be reallocated once outside.
2011-01-21 15:54:54 -07:00
..
.gitignore Add dtrace static probes in libvirtd 2010-10-22 12:00:39 +01:00
dispatch.c daemon: Include stdlib.h in dispatch.c 2010-11-14 22:21:21 +01:00
dispatch.h Remote driver & daemon impl of new event API 2010-03-26 13:52:29 +00:00
event.c event: fix event-handling data race 2011-01-21 15:54:54 -07:00
event.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
libvirtd.aug Basic framework for auditing integration 2010-10-19 17:31:31 +01:00
libvirtd.c daemon: Fix core dumps if unix_sock_group is set 2011-01-10 11:01:46 +01:00
libvirtd.conf Basic framework for auditing integration 2010-10-19 17:31:31 +01:00
libvirtd.h daemon: use safer memory growth macros 2010-11-18 12:21:57 -07:00
libvirtd.init.in daemon: Export SDL audio environment variables 2010-05-21 12:48:34 -04:00
libvirtd.lxc.logrotate.in Change logrotate to be per-hypervisor logs 2010-03-10 11:27:02 +01:00
libvirtd.pod.in docs: removed outdated reference to virt-mem 2010-11-23 01:11:10 +11:00
libvirtd.policy-0 Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
libvirtd.policy-1 Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
libvirtd.qemu.logrotate.in Change logrotate to be per-hypervisor logs 2010-03-10 11:27:02 +01:00
libvirtd.sasl Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
libvirtd.stp Include socket address in client probe data 2010-10-22 12:00:45 +01:00
libvirtd.sysconf daemon: sysconf: Update comment about VNC audio 2010-05-26 10:51:36 -04:00
libvirtd.uml.logrotate.in Change logrotate to be per-hypervisor logs 2010-03-10 11:27:02 +01:00
Makefile.am maint: avoid space-tab 2010-12-21 13:21:25 -07:00
mdns.c Rename daemon main code 2009-09-21 14:41:45 +01:00
mdns.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
probes.d Include socket address in client probe data 2010-10-22 12:00:45 +01:00
qemu_dispatch_args.h Qemu remote protocol. 2010-07-23 17:30:33 -04:00
qemu_dispatch_prototypes.h Qemu remote protocol. 2010-07-23 17:30:33 -04:00
qemu_dispatch_ret.h Qemu remote protocol. 2010-07-23 17:30:33 -04:00
qemu_dispatch_table.h Qemu remote protocol. 2010-07-23 17:30:33 -04:00
remote_dispatch_args.h implement the remote protocol 2010-11-23 15:04:42 -07:00
remote_dispatch_prototypes.h implement the remote protocol 2010-11-23 15:04:42 -07:00
remote_dispatch_ret.h implement the remote protocol 2010-11-23 15:04:42 -07:00
remote_dispatch_table.h implement the remote protocol 2010-11-23 15:04:42 -07:00
remote_generate_stubs.pl Qemu remote protocol. 2010-07-23 17:30:33 -04:00
remote.c implement the remote protocol 2010-11-23 15:04:42 -07:00
remote.h Ensure remote daemon unions are always non-zero length 2010-09-10 11:14:51 +01:00
stream.c Fix busy-wait loop on closed file descriptor 2010-11-11 16:03:26 +00:00
stream.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
test_libvirtd.aug Push unapplied fixups for previous patch 2011-01-21 16:18:54 -05:00
THREADING.txt Move libvirtd event loop into background thread 2009-11-03 14:45:43 -05:00