[Libvir] PATCH: Check for bogus default architecture
Daniel P. Berrange
berrange at redhat.com
Thu Jul 26 15:33:05 UTC 2007
There was a missing check in the QEMU driver for a bogus architecture in
the XML which could cause a crash. This wasn't a problem except for the
fact that another bug in my recent virt-install 0.200.0 release passed a
bogus architecture on 32-bit platforms :-(
Regards,
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules: http://search.cpan.org/~danberr/ -=|
|=- Projects: http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
-------------- next part --------------
diff -rup libvirt-0.3.1.orig/src/qemu_conf.c libvirt-0.3.1.new/src/qemu_conf.c
--- libvirt-0.3.1.orig/src/qemu_conf.c 2007-07-24 11:06:38.000000000 -0400
+++ libvirt-0.3.1.new/src/qemu_conf.c 2007-07-26 10:22:09.000000000 -0400
@@ -1088,6 +1088,10 @@ static struct qemud_vm_def *qemudParseXM
if ((obj == NULL) || (obj->type != XPATH_STRING) ||
(obj->stringval == NULL) || (obj->stringval[0] == 0)) {
const char *defaultMachine = qemudDefaultMachineForArch(def->os.arch);
+ if (!defaultMachine) {
+ qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR, "unsupported arch %s", def->os.arch);
+ goto error;
+ }
if (strlen(defaultMachine) >= (QEMUD_OS_MACHINE_MAX_LEN-1)) {
qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR, "%s", "machine type too long");
goto error;
More information about the libvir-list
mailing list