Accepting request 866983 from home:bfrogers:branches:Virtualization
- Fix two additional cases of qemu crashing due to qemu module packages not being loaded. qom-handle-case-of-chardev-spice-module-.patch spice-app-avoid-crash-when-core-spice-mo.patch OBS-URL: https://build.opensuse.org/request/show/866983 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=607
This commit is contained in:
parent
0c8904995e
commit
4dca4ea015
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:40dac7b5525c97b434e58750c25d2a63773da19514cedf090e79121f91af8d00
|
||||
size 42436
|
||||
oid sha256:46d1f552ea4a7255ac0240c6ecf5457cd5bdff871733916e017108b744a856bb
|
||||
size 43236
|
||||
|
@ -1,3 +1,11 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 26 17:52:09 UTC 2021 - Bruce Rogers <brogers@suse.com>
|
||||
|
||||
- Fix two additional cases of qemu crashing due to qemu module
|
||||
packages not being loaded.
|
||||
qom-handle-case-of-chardev-spice-module-.patch
|
||||
spice-app-avoid-crash-when-core-spice-mo.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 22 17:24:07 UTC 2021 - Bruce Rogers <brogers@suse.com>
|
||||
|
||||
|
@ -182,6 +182,8 @@ Patch00047: roms-Makefile-add-cross-file-to-qboot-me.patch
|
||||
Patch00048: usb-Help-compiler-out-to-avoid-a-warning.patch
|
||||
Patch00049: iotests-Fix-_send_qemu_cmd-with-bash-5.1.patch
|
||||
Patch00050: module-for-virtio-gpu-pre-load-module-to.patch
|
||||
Patch00051: spice-app-avoid-crash-when-core-spice-mo.patch
|
||||
Patch00052: qom-handle-case-of-chardev-spice-module-.patch
|
||||
# Patches applied in roms/seabios/:
|
||||
Patch01000: seabios-use-python2-explicitly-as-needed.patch
|
||||
Patch01001: seabios-switch-to-python3-as-needed.patch
|
||||
@ -1052,6 +1054,8 @@ This package records qemu testsuite results and represents successful testing.
|
||||
%endif
|
||||
%patch00049 -p1
|
||||
%patch00050 -p1
|
||||
%patch00051 -p1
|
||||
%patch00052 -p1
|
||||
%patch01000 -p1
|
||||
%patch01001 -p1
|
||||
%patch01002 -p1
|
||||
|
32
qom-handle-case-of-chardev-spice-module-.patch
Normal file
32
qom-handle-case-of-chardev-spice-module-.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Mon, 25 Jan 2021 22:09:27 -0700
|
||||
Subject: qom: handle case of chardev-spice module unavailability
|
||||
|
||||
When qemu is built with modules, but a given module doesn't load
|
||||
qemu should handle that gracefully. When chardev-spice.so isn't
|
||||
able to be loaded and qemu is invoked with -display spice-app,
|
||||
qemu will reach an abort call. Explicitly detect these conditions
|
||||
and error out in a normal way before we reach that code.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
qom/object.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/qom/object.c b/qom/object.c
|
||||
index 6f301fec34d103b0b07bc41d107c..0dec164192a55d3d9d955d445db9 100644
|
||||
--- a/qom/object.c
|
||||
+++ b/qom/object.c
|
||||
@@ -236,6 +236,12 @@ static bool type_is_ancestor(TypeImpl *type, TypeImpl *target_type)
|
||||
return true;
|
||||
}
|
||||
|
||||
+
|
||||
+ if (type->parent && !strcmp(type->parent, "chardev-spiceport")) {
|
||||
+ if (!type->parent_type && !type_get_by_name(type->parent)) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ }
|
||||
type = type_get_parent(type);
|
||||
}
|
||||
|
46
spice-app-avoid-crash-when-core-spice-mo.patch
Normal file
46
spice-app-avoid-crash-when-core-spice-mo.patch
Normal file
@ -0,0 +1,46 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Mon, 25 Jan 2021 21:05:05 -0700
|
||||
Subject: spice-app: avoid crash when core spice module isn't loaded
|
||||
|
||||
When qemu is built with modules, but a given module doesn't load
|
||||
qemu should handle that gracefully. When ui-spice-core.so isn't
|
||||
able to be loaded and qemu is invoked with -display spice-app or
|
||||
-spice, qemu will dereference a null pointer. With this change we
|
||||
check the pointer before dereferencing and error out in a normal
|
||||
way.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
ui/spice-app.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ui/spice-app.c b/ui/spice-app.c
|
||||
index 026124ef56a0ef26fbe3cf0a1aba..8ded9024a376da5c4802c1f87fd7 100644
|
||||
--- a/ui/spice-app.c
|
||||
+++ b/ui/spice-app.c
|
||||
@@ -129,6 +129,7 @@ static void spice_app_atexit(void)
|
||||
static void spice_app_display_early_init(DisplayOptions *opts)
|
||||
{
|
||||
QemuOpts *qopts;
|
||||
+ QemuOptsList *list;
|
||||
GError *err = NULL;
|
||||
|
||||
if (opts->has_full_screen) {
|
||||
@@ -159,11 +160,16 @@ static void spice_app_display_early_init(DisplayOptions *opts)
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
+ list = qemu_find_opts("spice");
|
||||
+ if (list == NULL) {
|
||||
+ error_report("spice-app missing spice support\n");
|
||||
+ exit(1);
|
||||
+ }
|
||||
|
||||
type_register(&char_vc_type_info);
|
||||
|
||||
sock_path = g_strjoin("", app_dir, "/", "spice.sock", NULL);
|
||||
- qopts = qemu_opts_create(qemu_find_opts("spice"), NULL, 0, &error_abort);
|
||||
+ qopts = qemu_opts_create(list, NULL, 0, &error_abort);
|
||||
qemu_opt_set(qopts, "disable-ticketing", "on", &error_abort);
|
||||
qemu_opt_set(qopts, "unix", "on", &error_abort);
|
||||
qemu_opt_set(qopts, "addr", sock_path, &error_abort);
|
Loading…
Reference in New Issue
Block a user