Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qemu for openSUSE:Factory checked in at 2021-01-29 14:56:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qemu (Old) and /work/SRC/openSUSE:Factory/.qemu.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qemu" Fri Jan 29 14:56:11 2021 rev:193 rq:867020 version:5.2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/qemu/qemu.changes 2021-01-26 14:44:52.395266688 +0100 +++ /work/SRC/openSUSE:Factory/.qemu.new.28504/qemu.changes 2021-01-29 14:56:39.941471308 +0100 @@ -1,0 +2,8 @@ +Tue Jan 26 17:52:09 UTC 2021 - Bruce Rogers <brog...@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 + +------------------------------------------------------------------- New: ---- qom-handle-case-of-chardev-spice-module-.patch spice-app-avoid-crash-when-core-spice-mo.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qemu.spec ++++++ --- /var/tmp/diff_new_pack.EcqtqO/_old 2021-01-29 14:56:41.877474157 +0100 +++ /var/tmp/diff_new_pack.EcqtqO/_new 2021-01-29 14:56:41.881474163 +0100 @@ -182,6 +182,8 @@ 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 @@ %endif %patch00049 -p1 %patch00050 -p1 +%patch00051 -p1 +%patch00052 -p1 %patch01000 -p1 %patch01001 -p1 %patch01002 -p1 ++++++ bundles.tar.xz ++++++ Binary files old/553032db17440f8de011390e5a1cfddd13751b0b.bundle and new/553032db17440f8de011390e5a1cfddd13751b0b.bundle differ ++++++ qom-handle-case-of-chardev-spice-module-.patch ++++++ From: Bruce Rogers <brog...@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 <brog...@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); } ++++++ spice-app-avoid-crash-when-core-spice-mo.patch ++++++ From: Bruce Rogers <brog...@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 <brog...@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);