]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemuBuildVideoCommandLine: Don't access def->videos without check
authorMichal Privoznik <mprivozn@redhat.com>
Mon, 14 Mar 2016 08:34:43 +0000 (09:34 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 14 Mar 2016 08:34:43 +0000 (09:34 +0100)
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>
src/qemu/qemu_command.c

index ba8c2162812e17d033b4a35d4853dc0d6042c27c..32d32b16c38f9b9961d49ef3db3da3c70fea51e6 100644 (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)) ||