Patchwork vl.c: Fail gracefully if no machine is found

login
register
mail settings
Submitter Andreas Färber
Date Nov. 10, 2011, 3:35 p.m.
Message ID <1320939332-31871-1-git-send-email-andreas.faerber@web.de>
Download mbox | patch
Permalink /patch/124909/
State New
Headers show

Comments

Andreas Färber - Nov. 10, 2011, 3:35 p.m.
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>
---
 vl.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
Anthony Liguori - Nov. 11, 2011, 7:45 p.m.
On 11/10/2011 09:35 AM, Andreas Färber wrote:
> 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>

Applied.  Thanks.

Regards,

Anthony Liguori

> ---
>   vl.c |    5 +++++
>   1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index f169aac..16fa222 100644
> --- 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.

Patch

diff --git a/vl.c b/vl.c
index f169aac..16fa222 100644
--- 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.