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
Rayhan Faizel 70e826ec6a conf: Fix rawio/sgio checks for non-scsi hostdev devices
The current hostdev parsing logic sets rawio or sgio even if the hostdev type
is not 'scsi'. The rawio field in virDomainHostdevSubsysSCSI overlaps with
wwpn field in virDomainHostdevSubsysSCSIVHost, consequently setting a bogus
pointer value such as 0x1 or 0x2 from virDomainHostdevSubsysSCSIVHost's
point of view. This leads to a segmentation fault when it attempts to free
wwpn.

While setting sgio does not appear to crash, it shares the same flawed logic
as setting rawio.

Instead, we ensure these are set only after the hostdev type check succeeds.
This patch also adds two test cases to exercise both scenarios.

Fixes: bdb95b520c
Signed-off-by: Rayhan Faizel <rayhan.faizel@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2024-07-03 09:54:43 +02:00
.ctags.d
.github/workflows github: Update lockdown message when opening a PR 2024-05-15 12:31:23 +02:00
.gitlab/issue_templates
build-aux
ci ci: fix CI package list and refresh with 'lcitool manifest' 2024-06-18 11:13:51 +01:00
docs domain_capabilities: Introduce netdev capabilities 2024-07-01 12:36:28 +02:00
examples
include qemu: Report snp-policy in virDomainGetLaunchSecurityInfo() 2024-06-21 09:36:04 +02:00
po Translated using Weblate (Korean) 2024-06-30 22:36:10 +02:00
scripts scripts/rpcgen: skip tests if tirpc is not present 2024-05-08 15:57:13 +01:00
src conf: Fix rawio/sgio checks for non-scsi hostdev devices 2024-07-03 09:54:43 +02:00
subprojects
tests conf: Fix rawio/sgio checks for non-scsi hostdev devices 2024-07-03 09:54:43 +02:00
tools virt-host-validate: Detect SEV-ES and SEV-SNP 2024-06-25 14:59:30 +02:00
.ctags
.dir-locals.el
.editorconfig
.gitattributes
.gitignore
.gitlab_pages_redirects
.gitlab-ci.yml gitlab: add missing job inheritance for codestyle 2024-06-17 11:36:00 +01:00
.gitmodules
.gitpublish
.mailmap
AUTHORS.rst.in
config.h
configmake.h.in
CONTRIBUTING.rst
COPYING
COPYING.LESSER
gitdm.config
libvirt-admin.pc.in
libvirt-lxc.pc.in
libvirt-qemu.pc.in
libvirt.pc.in
libvirt.spec.in meson: allow systemd sysusersdir to be changed 2024-06-13 10:23:11 +01:00
meson_options.txt network: introduce a "none" firewall backend type 2024-06-17 15:55:14 +01:00
meson.build Post-release version bump to 10.6.0 2024-07-01 11:13:02 +02:00
NEWS.rst Post-release version bump to 10.6.0 2024-07-01 11:13:02 +02:00
README.rst
run.in run.in: Detect binaries in builddir properly 2024-06-04 14:39:00 +02:00

GitLab CI Build Status

CII Best Practices

Translation status

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:

https://libvirt.org

License

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.0 (or later). See the files COPYING.LESSER and COPYING for full license terms & conditions.

Installation

Instructions on building and installing libvirt can be found on the website:

https://libvirt.org/compiling.html

Contributing

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:

https://libvirt.org/contribute.html

Contact

The libvirt project has two primary mailing lists:

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

https://libvirt.org/contact.html