From 9c84f7645e487558cf44e5489d0face8cac3314d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 20 Apr 2021 20:55:21 -0400 Subject: [PATCH] x11: Don't beep on untrusted displays This can trigger BadAccess, and we don't want that. Fixes: #3862 --- gdk/x11/gdkdisplay-x11.c | 3 +++ gdk/x11/gdkwindow-x11.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 817944e3a5..7e08f472cc 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -1964,6 +1964,9 @@ _gdk_x11_display_update_grab_info_ungrab (GdkDisplay *display, static void gdk_x11_display_beep (GdkDisplay *display) { + if (!GDK_X11_DISPLAY (display)->trusted_client) + return; + #ifdef HAVE_XKB XkbBell (GDK_DISPLAY_XDISPLAY (display), None, 0, None); #else diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 38ff91da6d..721d9bb63a 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -5472,6 +5472,9 @@ gdk_x11_window_beep (GdkWindow *window) display = GDK_WINDOW_DISPLAY (window); + if (!GDK_X11_DISPLAY (display)->trusted_client) + return FALSE; + #ifdef HAVE_XKB if (GDK_X11_DISPLAY (display)->use_xkb) {