qemuBuildVideoCommandLine: Don't access def->videos without check

This function can be called over a domain definition that has no
video configured. The
tests/qemuxml2argvdata/qemuxml2argv-minimal.xml file could serve
as an example. Problem is, before the check that domain has some
or none video configured, def->videos is dereferenced causing a
segmentation fault in case there's none video configured.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Michal Privoznik 2016-03-14 09:34:43 +01:00
parent 95ca4fe2f2
commit 2e70af12f2

View File

@ -3809,7 +3809,7 @@ qemuBuildVideoCommandLine(virCommandPtr cmd,
virQEMUCapsPtr qemuCaps)
{
size_t i;
int primaryVideoType = def->videos[0]->type;
int primaryVideoType;
if (!def->nvideos) {
/* If we have -device, then we set -nodefaults already */
@ -3819,6 +3819,8 @@ qemuBuildVideoCommandLine(virCommandPtr cmd,
return 0;
}
primaryVideoType = def->videos[0]->type;
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIDEO_PRIMARY) &&
((primaryVideoType == VIR_DOMAIN_VIDEO_TYPE_VGA &&
virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VGA)) ||