71aed0d95c
- kvm-virtio-net-Add-queues-before-loading-them.patch [RHEL-69477] - kvm-docs-system-s390x-bootdevices-Update-loadparm-docume.patch [RHEL-68440] - kvm-docs-system-bootindex-Make-it-clear-that-s390x-can-a.patch [RHEL-68440] - kvm-hw-s390x-Restrict-loadparm-property-to-devices-that-.patch [RHEL-68440] - kvm-hw-Add-loadparm-property-to-scsi-disk-devices-for-bo.patch [RHEL-68440] - kvm-scsi-fix-allocation-for-s390x-loadparm.patch [RHEL-68440] - kvm-pc-bios-s390x-Initialize-cdrom-type-to-false-for-eac.patch [RHEL-68440] - kvm-pc-bios-s390x-Initialize-machine-loadparm-before-pro.patch [RHEL-68440] - kvm-pc-bios-s390-ccw-Re-initialize-receive-queue-index-b.patch [RHEL-68440] - kvm-vnc-fix-crash-when-no-console-attached.patch [RHEL-61633] - Resolves: RHEL-69477 (qemu crashed when migrate vm with multiqueue from rhel9.4 to rhel9.6) - Resolves: RHEL-68440 (The new "boot order" feature is sometimes not working as expected [RHEL 9]) - Resolves: RHEL-61633 (Qemu-kvm crashed if no display device setting and switching display by remote-viewer [rhel-9])
62 lines
2.9 KiB
Diff
62 lines
2.9 KiB
Diff
From b38e94f0f0d45f8edd30828d4bb620430e604048 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
|
Date: Tue, 20 Aug 2024 17:11:12 +0400
|
|
Subject: [PATCH 10/10] vnc: fix crash when no console attached
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
RH-Author: Marc-André Lureau <marcandre.lureau@redhat.com>
|
|
RH-MergeRequest: 300: vnc: fix crash when no console attached
|
|
RH-Jira: RHEL-61633
|
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
RH-Commit: [1/1] 91fc70408701fa1e20ed8fefb8cdf424451dcc20 (marcandre.lureau-rh/qemu-kvm-centos)
|
|
|
|
JIRA: https://issues.redhat.com/browse/RHEL-61633
|
|
|
|
Since commit e99441a3793b5 ("ui/curses: Do not use console_select()")
|
|
qemu_text_console_put_keysym() no longer checks for NULL console
|
|
argument, which leads to a later crash:
|
|
|
|
Thread 1 "qemu-system-x86" received signal SIGSEGV, Segmentation fault.
|
|
0x00005555559ee186 in qemu_text_console_handle_keysym (s=0x0, keysym=31) at ../ui/console-vc.c:332
|
|
332 } else if (s->echo && (keysym == '\r' || keysym == '\n')) {
|
|
(gdb) bt
|
|
#0 0x00005555559ee186 in qemu_text_console_handle_keysym (s=0x0, keysym=31) at ../ui/console-vc.c:332
|
|
#1 0x00005555559e18e5 in qemu_text_console_put_keysym (s=<optimized out>, keysym=<optimized out>) at ../ui/console.c:303
|
|
#2 0x00005555559f2e88 in do_key_event (vs=vs@entry=0x5555579045c0, down=down@entry=1, keycode=keycode@entry=60, sym=sym@entry=65471) at ../ui/vnc.c:2034
|
|
#3 0x00005555559f845c in ext_key_event (vs=0x5555579045c0, down=1, sym=65471, keycode=<optimized out>) at ../ui/vnc.c:2070
|
|
#4 protocol_client_msg (vs=0x5555579045c0, data=<optimized out>, len=<optimized out>) at ../ui/vnc.c:2514
|
|
#5 0x00005555559f515c in vnc_client_read (vs=0x5555579045c0) at ../ui/vnc.c:1607
|
|
|
|
Fixes: e99441a3793b5 ("ui/curses: Do not use console_select()")
|
|
Fixes: https://issues.redhat.com/browse/RHEL-50529
|
|
Cc: qemu-stable@nongnu.org
|
|
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
|
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
|
|
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
|
|
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
|
|
|
|
(cherry picked from commit 0e60fc80938d9ce84274a36ddfaaa640bdef2be8)
|
|
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
|
---
|
|
ui/vnc.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/ui/vnc.c b/ui/vnc.c
|
|
index dae5d51210..5057ec8680 100644
|
|
--- a/ui/vnc.c
|
|
+++ b/ui/vnc.c
|
|
@@ -1935,7 +1935,7 @@ static void do_key_event(VncState *vs, int down, int keycode, int sym)
|
|
}
|
|
|
|
qkbd_state_key_event(vs->vd->kbd, qcode, down);
|
|
- if (!qemu_console_is_graphic(vs->vd->dcl.con)) {
|
|
+ if (QEMU_IS_TEXT_CONSOLE(vs->vd->dcl.con)) {
|
|
QemuTextConsole *con = QEMU_TEXT_CONSOLE(vs->vd->dcl.con);
|
|
bool numlock = qkbd_state_modifier_get(vs->vd->kbd, QKBD_MOD_NUMLOCK);
|
|
bool control = qkbd_state_modifier_get(vs->vd->kbd, QKBD_MOD_CTRL);
|
|
--
|
|
2.39.3
|
|
|