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
Laine Stump 5531a13c5f util: fix crash when starting macvtap interfaces
This patch resolves https://bugzilla.redhat.com/show_bug.cgi?id=815270

The function virNetDevMacVLanVPortProfileRegisterCallback() takes an
arg "virtPortProfile", and was checking it for non-NULL before using
it. However, the prototype for
virNetDevMacVLanPortProfileRegisterCallback had marked that arg with
ATTRIBUTE_NONNULL(). Contrary to what one may think,
ATTRIBUTE_NONNULL() does not provide any guarantee that an arg marked
as such really is always non-null; the only effect to the code
generated by gcc, is that gcc *assumes* it is non-NULL; this results
in, for example, the check for a non-NULL value being optimized out.

(Unfortunately, this code removal only occurs when optimization is
enabled, and I am in the habit of doing local builds with optimization
off to ease debugging, so the bug didn't show up in my earlier local
testing).

In general, virPortProfile might always be NULL, so it shouldn't be
marked as ATTRIBUTE_NONNULL. One other function prototype made this
same error, so this patch fixes it as well.
2012-04-26 14:13:58 -04:00
.gnulib@bb2f5640d5 build: fix bootstrap on RHEL 2012-04-26 14:13:49 -04:00
daemon daemon: Plug memory leaks 2012-04-16 12:42:37 +01:00
docs docs: fix 'omitted' typo in <cputune> doc 2012-04-25 16:15:59 -04:00
examples Revert "Refactor the libvirt RPM daemon pieces" 2012-04-03 14:49:31 +08:00
gnulib build: fix fresh checkout on RHEL5 2012-04-25 16:36:26 -04:00
include snapshot: add atomic create flag 2012-03-23 16:38:20 -06:00
m4 Enable all warnings permanently & default to -Werror for GIT builds 2012-03-27 17:08:06 +01:00
po Pull in GNULIB regex module for benefit of test suite on Win32 2012-04-16 12:39:13 +01:00
python Fix compilation error on 32bit 2012-04-16 12:40:44 +01:00
src util: fix crash when starting macvtap interfaces 2012-04-26 14:13:58 -04:00
tests tests: avoid compiler warnings 2012-04-16 12:40:02 +01:00
tools virsh: Clarify use of the --managed-save flag for the list command 2012-04-16 12:40:57 +01:00
.dir-locals.el maint: let emacs avoid tabs in rng files 2011-08-13 08:56:26 -06:00
.gitignore build: drop obsolete qparams test 2012-03-23 16:12:58 -06:00
.gitmodules make .gnulib a submodule 2009-07-08 16:17:51 +02:00
.mailmap maint: prune duplicate listings in AUTHORS 2012-02-03 09:56:45 -07:00
AUTHORS esx: Fix segfault in esxConnectToHost 2012-04-25 16:39:49 -04:00
autobuild.sh Enable all warnings permanently & default to -Werror for GIT builds 2012-03-27 17:08:06 +01:00
autogen.sh build: allow for local gnulib diffs 2011-11-09 09:03:33 -07:00
bootstrap build: fix bootstrap on RHEL 2012-04-26 14:13:49 -04:00
bootstrap.conf build: fix bootstrap on RHEL 2012-04-26 14:13:49 -04:00
cfg.mk build: fix mingw ssize_t, syntax check 2012-03-30 11:10:54 -06:00
ChangeLog-old virterror.c: Fix several spelling mistakes 2012-02-03 11:32:51 -07:00
configure.ac build: fix bootstrap on RHEL 2012-04-26 14:13:49 -04:00
COPYING.LIB remove all trailing blank lines 2009-07-16 15:06:42 +02:00
HACKING Document STREQ_NULLABLE and STRNEQ_NULLABLE 2011-10-06 16:50:38 +02:00
libvirt.pc.in Fix typos in API XML file paths 2012-02-15 11:29:38 +00:00
libvirt.spec.in Release of libvirt 0.9.11 2012-04-03 15:06:37 +08:00
Makefile.am maint: add missing copyright notices 2011-07-28 15:01:17 -06:00
Makefile.nonreentrant Ban use of all inet_* functions 2010-10-22 11:59:23 +01:00
mingw32-libvirt.spec.in Fix typos in API XML file paths 2012-02-15 11:29:38 +00: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>