summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-04-20 20:55:21 -0400
committerMatthias Clasen <mclasen@redhat.com>2021-04-20 21:41:48 -0400
commit9c84f7645e487558cf44e5489d0face8cac3314d (patch)
treecc83fa3c5595588be21b55d3b019595b80c09fb4
parent191433bf0ac68e663083b2bbdb83bfb23474c6ea (diff)
downloadgtk+-untrusted-beep-3.tar.gz
x11: Don't beep on untrusted displaysuntrusted-beep-3
This can trigger BadAccess, and we don't want that. Fixes: #3862
-rw-r--r--gdk/x11/gdkdisplay-x11.c3
-rw-r--r--gdk/x11/gdkwindow-x11.c3
2 files changed, 6 insertions, 0 deletions
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)
{