conf: disallow invalid values for video attributes

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1190956

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
Martin Kletzander 2015-02-10 08:55:06 +01:00
parent 633053af67
commit 3f9f4aa84f
3 changed files with 35 additions and 4 deletions

View File

@ -10580,7 +10580,7 @@ virDomainVideoDefParseXML(xmlNodePtr node,
_("ram attribute only supported for type of qxl"));
goto error;
}
if (virStrToLong_ui(ram, NULL, 10, &def->ram) < 0) {
if (virStrToLong_uip(ram, NULL, 10, &def->ram) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("cannot parse video ram '%s'"), ram);
goto error;
@ -10590,7 +10590,7 @@ virDomainVideoDefParseXML(xmlNodePtr node,
}
if (vram) {
if (virStrToLong_ui(vram, NULL, 10, &def->vram) < 0) {
if (virStrToLong_uip(vram, NULL, 10, &def->vram) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("cannot parse video vram '%s'"), vram);
goto error;
@ -10605,7 +10605,7 @@ virDomainVideoDefParseXML(xmlNodePtr node,
_("vgamem attribute only supported for type of qxl"));
goto error;
}
if (virStrToLong_ui(vgamem, NULL, 10, &def->vgamem) < 0) {
if (virStrToLong_uip(vgamem, NULL, 10, &def->vgamem) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("cannot parse video vgamem '%s'"), vgamem);
goto error;
@ -10613,7 +10613,7 @@ virDomainVideoDefParseXML(xmlNodePtr node,
}
if (heads) {
if (virStrToLong_ui(heads, NULL, 10, &def->heads) < 0) {
if (virStrToLong_uip(heads, NULL, 10, &def->heads) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse video heads '%s'"), heads);
goto error;

View File

@ -0,0 +1,30 @@
<domain type='qemu'>
<name>QEMUGuest1</name>
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
<memory unit='KiB'>219100</memory>
<currentMemory unit='KiB'>219100</currentMemory>
<vcpu placement='static' cpuset='1-4,8-20,525'>1</vcpu>
<os>
<type arch='i686' machine='pc'>hvm</type>
<boot dev='hd'/>
</os>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu</emulator>
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<controller type='usb' index='0'/>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<video>
<model type='qxl' ram='-1' vram='-1' vgamem='-1' heads='-1'/>
</video>
<memballoon model='virtio'/>
</devices>
</domain>

View File

@ -1362,6 +1362,7 @@ mymain(void)
QEMU_CAPS_DEVICE_QXL_VGA, QEMU_CAPS_DEVICE_QXL,
QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_QXL_VGA_VGAMEM,
QEMU_CAPS_QXL_VGAMEM);
DO_TEST_PARSE_ERROR("video-invalid", NONE);
DO_TEST("virtio-rng-default", QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_VIRTIO_RNG,
QEMU_CAPS_OBJECT_RNG_RANDOM);