]> git.ipfire.org Git - thirdparty/libvirt.git/commit
Fix segmentation fault when accessing default qemu machine type
authorYudai Yamagish <yummy@sfc.wide.ad.jp>
Tue, 17 Dec 2013 08:33:19 +0000 (17:33 +0900)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 7 Jan 2014 14:26:12 +0000 (15:26 +0100)
commit729530749e9c4bbf32b7aa74c9f13e2d1b7fca19
tree37ffeceebd83ee2989b7d8c5323e3a221c32c71e
parent968fe2c8f84c9040e169b610b6a0753cae08f60e
Fix segmentation fault when accessing default qemu machine type

This patch fixes a segmentation fault when creating new virtual machines using QEMU.
The segmentation fault is caused by commit f41830680e40d3ec845cefd25419bd87414b9ccf
and commit cbb6ec42e2447d7920b30d66923b2a2b2670133b.

In virQEMUCapsProbeQMPMachineTypes, when copying machines to qemuCaps, "none" is skipped.
Therefore, the value of i and "qemuCaps->nmachineTypes - 1" do not always match.
However, defIdx value (used to call virQEMUCapsSetDefaultMachine) is set using the value in i
when the array elements are in qemuCaps->nmachineTypes - 1.
So, when libvirt tries to create virtual machines using the default machine type,
qemuCaps->machineTypes[defIdx] is accessed and since the defIdx is NULL, it results in segmentation fault.

Signed-off-by: Yudai Yamagishi <yummy@sfc.wide.ad.jp>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_capabilities.c