From: Erik Skultety Date: Mon, 8 Sep 2014 10:27:23 +0000 (+0200) Subject: qemu: panic device: check for invalid address type X-Git-Tag: CVE-2014-3633~133 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=afb4c6b6634e16beb5ddbca3f1113c615e10e7e4;p=thirdparty%2Flibvirt.git qemu: panic device: check for invalid address type qemu now checks for invalid address type for a panic device, which is currently implemented only to use ISA address type, thus rejecting any other options, except for leaving XML attributes blank, in that case, defaults are used (this behaviour remains the same from earlier verions). Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1138125 Signed-off-by: Martin Kletzander --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 1ca98fbdbc..7b87a31bb4 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9418,12 +9418,18 @@ qemuBuildCommandLine(virConnectPtr conn, if (def->panic) { if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_PANIC)) { - if (def->panic->info.addr.isa.iobase > 0) { + if (def->panic->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_ISA) { virCommandAddArg(cmd, "-device"); virCommandAddArgFormat(cmd, "pvpanic,ioport=%d", def->panic->info.addr.isa.iobase); - } else { + } else if (def->panic->info.type == + VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) { virCommandAddArgList(cmd, "-device", "pvpanic", NULL); + } else { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("panic is supported only " + "with ISA address type")); + goto error; } } else { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",