PULL REQUESTS ARE IGNORED. Read-only mirror of https://libvirt.org/git/?p=libvirt.git
Switch branches/tags
Clone or download
jferlan lxc: Resolve memory leak
Commit 40b5c99 modified the virConfGetValue callers to use
virConfGetValueString. However, using the virConfGetValueString
resulted in leaking the returned @value string in each case.
So, let's modify each instance to use the VIR_AUTOFREE(char *)
syntax. In some instances changing the variable name since
@value was used more than once.

Found by Coverity

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Latest commit 996f101 Sep 20, 2018
Failed to load latest commit information.
.gnulib @ 68df637 build: Fix accidental revert of .gnulib update Jul 19, 2018
build-aux build-aux:check-spacing: Introduce a new rule to check misaligned stu… Sep 24, 2018
docs conf: Introduce RDT monitor host capability Sep 20, 2018
examples apparmor: fix ptrace rules with kernel 4.18 Aug 27, 2018
gnulib Update to latest gnulib Mar 12, 2018
include/libvirt qemu: Add entry for balloon stat stat-disk-caches Jul 16, 2018
m4 libxl: fallback to lib probe if pkgconfig file not found Sep 20, 2018
po po: refresh translations from zanata Jul 31, 2018
src lxc: Resolve memory leak Sep 24, 2018
tests tests: Resolve possible overrun Sep 24, 2018
tools tools: Fix printf format Sep 24, 2018
.color_coded.in Add color_coded support May 9, 2017
.ctags ctags: Generate tags for headers, i.e. function prototypes Sep 18, 2018
.dir-locals.el build: avoid tabs that failed syntax-check Sep 6, 2012
.gitignore po: minimize & canonicalize translations stored in git Apr 19, 2018
.gitmodules gnulib: switch to use https:// instead of git:// protocol Mar 19, 2018
.gitpublish git: add config file telling git-publish how to send patches Apr 23, 2018
.mailmap AUTHORS: Add Katerina Koukiou Jul 17, 2018
.travis.yml travis: Add MinGW builds Jun 15, 2018
.ycm_extra_conf.py.in Add YouCompleteMe support May 9, 2017
ABOUT-NLS po: provide custom make rules for po file management Apr 19, 2018
AUTHORS.in AUTHORS: Add Katerina Koukiou Jul 17, 2018
COPYING maint: follow recommended practice for using LGPL May 20, 2013
COPYING.LESSER maint: Remove control characters from LGPL license file Sep 25, 2015
ChangeLog-old Fix typos in src/* Apr 21, 2014
Makefile.am Forget last daemon/ dir artefacts Jul 27, 2018
Makefile.nonreentrant Remove backslash alignment attempts Nov 3, 2017
README Provide a useful README file May 22, 2017
README-hacking docs: update all GIT repo examples to use https:// protocol Mar 21, 2018
README.md Add CII best practices badge Oct 13, 2017
autogen.sh po: provide custom make rules for po file management Apr 19, 2018
bootstrap maint: update to latest gnulib Jul 14, 2018
bootstrap.conf vsh: Fix broken build on mingw Aug 28, 2018
cfg.mk security_manager: Load lock plugin on init Sep 18, 2018
config-post.h Revert "build: undef WITH_JANSSON for SETUID_RPC_CLIENT" Aug 13, 2018
configure.ac Post-release version bump to 4.8.0 Sep 4, 2018
libvirt-admin.pc.in Add libvirt-admin library Jun 16, 2015
libvirt-lxc.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc Jun 23, 2014
libvirt-qemu.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc Jun 23, 2014
libvirt.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc Jun 23, 2014
libvirt.spec.in rpm: increase min required Fedora to 27 Sep 11, 2018
mingw-libvirt.spec.in cpu: move the CPU map data files into a src/cpu_map directory Aug 28, 2018
run.in run: Fix LIBVIRTD_PATH Jul 24, 2018


Build Status CII Best Practices

Libvirt API for virtualization

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.

For some of these hypervisors, it provides a stateful management daemon which runs on the virtualization host allowing access to the API both by non-privileged local users and remote users.

Layered packages provide bindings of the libvirt C API into other languages including Python, Perl, PHP, Go, Java, OCaml, as well as mappings into object systems such as GObject, CIM and SNMP.

Further information about the libvirt project can be found on the website:



The libvirt C API is distributed under the terms of GNU Lesser General Public License, version 2.1 (or later). Some parts of the code that are not part of the C library may have the more restrictive GNU General Public License, version 2.1 (or later). See the files COPYING.LESSER and COPYING for full license terms & conditions.


Libvirt uses the GNU Autotools build system, so in general can be built and installed with the usual commands. For example, to build in a manner that is suitable for installing as root, use:

$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
$ make
$ sudo make install

While to build & install as an unprivileged user

$ ./configure --prefix=$HOME/usr
$ make
$ make install

The libvirt code relies on a large number of 3rd party libraries. These will be detected during execution of the configure script and a summary printed which lists any missing (optional) dependencies.


The libvirt project welcomes contributions in many ways. For most components the best way to contribute is to send patches to the primary development mailing list. Further guidance on this can be found on the website:



The libvirt project has two primary mailing lists:

Further details on contacting the project are available on the website: