vl.c: Fail gracefully if no machine is found
authorAndreas Färber <andreas.faerber@web.de>
Thu, 10 Nov 2011 15:35:32 +0000 (16:35 +0100)
committerAnthony Liguori <aliguori@us.ibm.com>
Fri, 11 Nov 2011 14:27:06 +0000 (08:27 -0600)
machine defaults to find_default_machine(),
then gets overridden via -M and machine_parse().

If no -M is specified and find_default_machine() returns NULL
(when no machine compiled in), exit with an error.

Avoids a segfault when setting machine->max_cpus.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
vl.c

diff --git a/vl.c b/vl.c
index f169aac..16fa222 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -3089,6 +3089,11 @@ int main(int argc, char **argv, char **envp)
         data_dir = CONFIG_QEMU_DATADIR;
     }
 
+    if (machine == NULL) {
+        fprintf(stderr, "No machine found.\n");
+        exit(1);
+    }
+
     /*
      * Default to max_cpus = smp_cpus, in case the user doesn't
      * specify a max_cpus value.