From: Thomas Huth Date: Wed, 10 May 2023 16:54:33 +0000 (+0200) Subject: softmmu/vl.c: Check for the availability of the VGA device before using it X-Git-Tag: v8.1.0-rc0~107^2~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d563cc84cdc599c3fbd40b36d6b71411e008b039;p=thirdparty%2Fqemu.git softmmu/vl.c: Check for the availability of the VGA device before using it In case the user disabled the default VGA device in the binary (e.g. with the "--without-default-devices" configure switch), we should not try to use it by default if QEMU is running with the default devices, otherwise it aborts when trying to use it. Simply emit a warning instead. Message-Id: <20230512124033.502654-3-thuth@redhat.com> Acked-by: Paolo Bonzini Signed-off-by: Thomas Huth --- diff --git a/softmmu/vl.c b/softmmu/vl.c index 6c2427262be..43d3b972da5 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -957,7 +957,18 @@ static const char * get_default_vga_model(const MachineClass *machine_class) { if (machine_class->default_display) { - return machine_class->default_display; + for (int t = 0; t < VGA_TYPE_MAX; t++) { + const VGAInterfaceInfo *ti = &vga_interfaces[t]; + + if (ti->opt_name && vga_interface_available(t) && + g_str_equal(ti->opt_name, machine_class->default_display)) { + return machine_class->default_display; + } + } + + warn_report_once("Default display '%s' is not available in this binary", + machine_class->default_display); + return NULL; } else if (vga_interface_available(VGA_CIRRUS)) { return "cirrus"; } else if (vga_interface_available(VGA_STD)) {