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;