Libvirt provides a portable, long term stable C API for managing the virtualization technologies provided by many operating systems. It includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER Hypervisor.
Go to file
Eric Blake a7483a5631 event: fix event-handling allocation crash
Regression introduced in commit e6b68d7 (Nov 2010).

Prior to that point, handlesAlloc was always a multiple of
EVENT_ALLOC_EXTENT (10), and was an int (so even if the subtraction
had been able to wrap, a negative value would be less than the count
not try to free the handles array).  But after that point,
VIR_RESIZE_N made handlesAlloc grow geometrically (with a pattern of
10, 20, 30, 45 for the handles array) but still freed in multiples of
EVENT_ALLOC_EXTENT; and the count changed to size_t.  Which means that
after 31 handles have been created, then 30 handles destroyed,
handlesAlloc is 5 while handlesCount is 1, and since (size_t)(1 - 5)
is indeed greater than 1, this then tried to free 10 elements, which
had the awful effect of nuking the handles array while there were
still live handles.

Nuking live handles puts libvirtd in an inconsistent state, and was
easily reproducible by starting and then stopping 60 faqemu guests.

* daemon/event.c (virEventCleanupTimeouts, virEventCleanupHandles):
Avoid integer wrap-around causing us to delete the entire array
while entries are still active.
* tests/eventtest.c (mymain): Expose the bug.
2011-01-27 09:12:36 -07:00
.gnulib@2f41af6508 build: fix 'make check' with older git 2011-01-21 15:40:46 -07:00
daemon event: fix event-handling allocation crash 2011-01-27 09:12:36 -07:00
docs docs: add a link to the bindings page under the downloads menu item 2011-01-26 16:00:33 +11:00
examples event-test: Simplify debug on/off 2011-01-10 14:44:04 -05:00
include Add documentation for VIR_DOMAIN_MEMORY_PARAM_UNLIMITED 2011-01-18 23:14:37 +01:00
m4 maint: update to latest gnulib 2010-11-17 10:13:12 -07:00
po Update localization files from Fedora i10n 2011-01-27 13:33:45 +08:00
python python: Use PyCapsule API if available 2011-01-10 15:18:05 -05:00
src remote: Add extra parameter pkipath for URI 2011-01-27 16:34:54 +08:00
tests event: fix event-handling allocation crash 2011-01-27 09:12:36 -07:00
tools docs: fix incorrect XML element mentioned by setmem text 2011-01-27 22:57:18 +11:00
.dir-locals.el misc: encode the Emacs suggstions from HACKING into a .dir-locals.el file 2010-11-01 10:22:58 -06:00
.gitignore Release of libvirt-0.8.7 2011-01-04 03:37:17 +01:00
.gitmodules make .gnulib a submodule 2009-07-08 16:17:51 +02:00
.mailmap maint: update an email address preference 2010-08-10 08:13:22 -06:00
.x-sc_avoid_ctype_macros exempt gnulib from ctype-macros prohibition 2008-10-28 17:36:31 +00:00
.x-sc_avoid_if_before_free avoid a "make syntax-check" failure 2009-07-09 20:00:37 +02:00
.x-sc_avoid_write Introduce new APIs for spawning processes 2010-12-02 16:00:44 -07:00
.x-sc_bindtextdomain maint: update to latest gnulib 2010-11-17 10:13:12 -07:00
.x-sc_m4_quote_check syntax-check: enable more checks 2009-02-03 13:08:36 +00:00
.x-sc_po_check build: avoid false positive syntax-check failure 2010-10-19 09:28:35 -06:00
.x-sc_prohibit_always_true_header_tests build: update gnulib 2010-05-06 14:35:38 -06:00
.x-sc_prohibit_asprintf util: add virVasprintf 2010-12-02 11:23:15 -07:00
.x-sc_prohibit_close build: enforce files.h usage 2010-11-24 15:23:43 -07:00
.x-sc_prohibit_empty_lines_at_EOF tests: test RHEL 6.0 qemu-kvm -help parsing 2010-12-13 16:30:02 -07:00
.x-sc_prohibit_gethostby Various syntax-check fixes. 2009-10-26 10:34:05 +01:00
.x-sc_prohibit_gethostname Add a new syntax-check rule for gethostname. 2009-10-26 10:34:27 +01:00
.x-sc_prohibit_gettext_noop build: fix syntax-check problems 2010-04-12 16:43:05 -06:00
.x-sc_prohibit_have_config_h maint: sync from coreutils 2009-01-29 18:06:19 +00:00
.x-sc_prohibit_HAVE_MBRTOWC maint: sync from coreutils 2009-01-29 18:06:19 +00:00
.x-sc_prohibit_nonreentrant Tighten up nonreentrant syntax-check. 2009-10-26 10:33:42 +01:00
.x-sc_prohibit_readlink Add a rule to check for uses of readlink. 2010-01-22 09:42:35 -05:00
.x-sc_prohibit_sprintf maint: avoid remaining sprintf uses 2010-11-17 10:13:12 -07:00
.x-sc_prohibit_strncpy Avoid checking against strncpy in virsh.c 2010-10-12 19:26:10 +02:00
.x-sc_prohibit_test_minus_ao build: fix syntax-check problems 2010-04-12 16:43:05 -06:00
.x-sc_prohibit_VIR_ERR_NO_MEMORY Various syntax-check fixes. 2009-10-26 10:34:05 +01:00
.x-sc_prohibit_xmlGetProp maint: prohibit most uses of xmlGetProp 2010-11-24 15:23:43 -07:00
.x-sc_require_config_h Various syntax-check fixes. 2009-10-26 10:34:05 +01:00
.x-sc_require_config_h_first Misc syntax-check fixes 2009-09-21 14:41:47 +01:00
.x-sc_trailing_blank build: exempt *.ico files from the trailing blank check 2008-10-16 13:28:07 +00:00
.x-sc_unmarked_diagnostics build: import latest gnulib 2010-04-02 10:18:55 -06:00
acinclude.m4 maint: turn on gcc logical-op checking 2010-07-28 15:25:36 +02:00
AUTHORS virsh: require --mac to avoid detach-interface ambiguity 2011-01-25 10:47:28 -07:00
autobuild.sh test: fix commandtest under autobuild.sh 2010-12-13 16:04:56 -07:00
autogen.sh Fix setup of lib directory with autogen.sh --system 2011-01-26 14:54:23 +00:00
bootstrap maint: support --no-git option during autogen.sh 2011-01-21 09:45:37 -07:00
bootstrap.conf build: avoid corrupted gnulib/tests/Makefile 2011-01-24 17:19:25 -07:00
cfg.mk Simplify "NWFilterPool" to "NWFilter" 2011-01-18 23:14:37 +01:00
ChangeLog-old generate ChangeLog from git logs into distribution tarball 2009-07-08 16:17:51 +02:00
configure.ac build: use more gnulib modules for simpler code 2011-01-18 15:35:41 -07:00
COPYING.LIB remove all trailing blank lines 2009-07-16 15:06:42 +02:00
HACKING maint: document dislike of mismatched if/else bracing 2011-01-05 11:05:28 -07:00
libvirt.pc.in * libvirt.pc.in: applied patch from Daniel Berrange to fix --cflags 2006-03-24 13:18:12 +00:00
libvirt.spec.in spec: Start libvirt-guests only if it's on in current runlevel 2011-01-19 15:01:52 +01:00
Makefile.am maint: improve sc_prohibit_strncmp syntax check 2011-01-14 15:39:05 -07:00
Makefile.nonreentrant Ban use of all inet_* functions 2010-10-22 11:59:23 +01:00
mingw32-libvirt.spec.in Add dtrace static probes in libvirtd 2010-10-22 12:00:39 +01:00
README Correct typos in the documentation (Atsushi SAKAI) 2008-01-24 10:15:13 +00:00
README-hacking maint: relax git minimum version 2010-02-24 14:29:27 -05:00
TODO Update todo list file to point at bugzilla/website 2010-10-13 16:45:26 +01:00

         LibVirt : simple API for virtualization

  Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). It is free software
available under the GNU Lesser General Public License. Virtualization of
the Linux Operating System means the ability to run multiple instances of
Operating Systems concurrently on a single hardware system where the basic
resources are driven by a Linux instance. The library aim at providing
long term stable C API initially for the Xen paravirtualization but
should be able to integrate other virtualization mechanisms if needed.

Daniel Veillard <veillard@redhat.com>