1
0
Fork 0
mutter-performance-source/src/wayland
Jonas Ådahl 21ce6f96f1 wayland/keyboard: Create a separate keymap shm file per resource
By using the shm file when sending the keymap to all clients, we
effectively allows any client to change the keymap, as any client has
the ability to change the content of the file. Sending a read-only file
descriptor, or making the file itself read-only before unlinking, can
be worked around by the client by using chmod(2) and open(2) on
/proc/<pid>/<fd>.

Using memfd could potentially solve this issue, but as the usage of
mmap with MAP_SHARED is wide spread among clients, such a change can
not be introduced without causing wide spread compatibility issues.

So, to avoid allowing clients to interfere with each other, create a
separate shm file for each wl_keyboard resource when sending the
keymap. We could eventually do this per client, but in most cases,
there will only be one wl_keyboard resource per client anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=784206
2018-08-17 16:34:05 +02:00
..
protocol protocol: Add internal text input protocol 2018-01-18 16:20:45 +01:00
meta-cursor-sprite-wayland.c cursor-renderer/native: Fetch instead of pass wl_buffer when realizing 2018-06-15 19:09:53 +00:00
meta-cursor-sprite-wayland.h cursor-renderer/native: Fetch instead of pass wl_buffer when realizing 2018-06-15 19:09:53 +00:00
meta-pointer-confinement-wayland.c wayland: Add MetaWaylandSurface::geometry-changed signal 2018-04-23 21:31:19 +02:00
meta-pointer-confinement-wayland.h Implement support for the wp_pointer_constraints protocol 2016-02-16 19:02:48 +08:00
meta-pointer-lock-wayland.c Implement support for the wp_pointer_constraints protocol 2016-02-16 19:02:48 +08:00
meta-pointer-lock-wayland.h Implement support for the wp_pointer_constraints protocol 2016-02-16 19:02:48 +08:00
meta-wayland-actor-surface.c wayland: Detach MetaWaylandActorSurface from its actor on dispose 2018-06-14 14:05:10 +02:00
meta-wayland-actor-surface.h wayland: Refactor surface actor into MetaWaylandActorSurface 2018-04-23 21:31:19 +02:00
meta-wayland-buffer.c wayland: Always realize buffers at surface commit time 2018-06-15 13:45:25 -07:00
meta-wayland-buffer.h wayland: Always realize buffers at surface commit time 2018-06-15 13:45:25 -07:00
meta-wayland-cursor-surface.c Stop using MetaScreen where it is unnecessary 2018-07-06 19:47:16 +02:00
meta-wayland-cursor-surface.h wayland: Rename cursor role types 2018-06-15 19:09:49 +00:00
meta-wayland-data-device-private.h wayland: Implement the (so far internal) primary selection protocol 2016-02-26 19:51:32 +01:00
meta-wayland-data-device.c wayland: Abstract access to the actor corresponding to a wl_surface 2018-04-23 12:24:46 +02:00
meta-wayland-data-device.h dnd: Implement DnD handling code in Wayland 2017-03-07 08:28:36 +08:00
meta-wayland-dma-buf.c wayland: Realize dmabuf buffers before trying to attach them 2018-06-21 21:47:05 +02:00
meta-wayland-dma-buf.h wayland: Add zwp_linux_dmabuf_v1 support 2017-08-01 19:05:50 +08:00
meta-wayland-egl-stream.c wayland: Create EGLStream-backed buffers through wl_eglstream_controller 2018-06-15 13:45:29 -07:00
meta-wayland-egl-stream.h wayland: Create EGLStream-backed buffers through wl_eglstream_controller 2018-06-15 13:45:29 -07:00
meta-wayland-gtk-shell.c wayland: Send edge constraints 2017-10-03 19:38:32 -03:00
meta-wayland-gtk-shell.h wayland: Move out gtk_shell from meta-wayland-surface.c 2016-08-25 12:19:40 +08:00
meta-wayland-inhibit-shortcuts-dialog.c wayland: Keep the inhibit shortcut dialog 2017-09-14 09:32:26 +02:00
meta-wayland-inhibit-shortcuts-dialog.h wayland: Keep the inhibit shortcut dialog 2017-09-14 09:32:26 +02:00
meta-wayland-inhibit-shortcuts.c wayland: send shortcut inhibit “active” event 2018-02-05 09:06:49 +00:00
meta-wayland-inhibit-shortcuts.h wayland: add keyboard shortcuts inhibitor protocol 2017-08-02 11:58:55 +02:00
meta-wayland-input-device.c wayland/input-device: Add next serial helper 2016-10-11 22:51:50 +08:00
meta-wayland-input-device.h wayland/input-device: Add next serial helper 2016-10-11 22:51:50 +08:00
meta-wayland-keyboard.c wayland/keyboard: Create a separate keymap shm file per resource 2018-08-17 16:34:05 +02:00
meta-wayland-keyboard.h wayland/keyboard: Create a separate keymap shm file per resource 2018-08-17 16:34:05 +02:00
meta-wayland-legacy-xdg-shell.c wayland: Compare geometries after chaining up 2018-05-18 13:09:10 +00:00
meta-wayland-legacy-xdg-shell.h wayland: Add support for stable xdg-shell 2018-02-23 18:57:53 +08:00
meta-wayland-outputs.c wayland: Remove unused GList *l 2018-07-31 11:47:51 +08:00
meta-wayland-outputs.h wayland: Add xdg-output support 2017-12-15 14:18:14 +01:00
meta-wayland-pointer-constraints.c wayland/pointer-constraints: Don't include window frame in region 2016-10-13 12:59:41 +08:00
meta-wayland-pointer-constraints.h MetaWaylandPointerConstraint: Use own 'appears-focused' signal handler 2016-03-09 14:26:53 +08:00
meta-wayland-pointer-gesture-pinch.c wayland: Forward touchpad pinch n_fingers information to clients 2016-11-04 16:28:30 +01:00
meta-wayland-pointer-gesture-pinch.h wayland: Implement the wl_pointer_gesture_pinch interface 2015-08-10 17:23:23 +02:00
meta-wayland-pointer-gesture-swipe.c clutter: Rename touchpad gesture n_fingers getter to be more generic 2016-11-04 16:28:30 +01:00
meta-wayland-pointer-gesture-swipe.h wayland: Implement the wl_pointer_gesture_swipe interface 2015-08-10 17:23:23 +02:00
meta-wayland-pointer-gestures.c configure.ac: Add AC_GNU_SOURCE 2016-07-20 14:23:48 +08:00
meta-wayland-pointer-gestures.h wayland: Implement wl_pointer_gestures 2015-08-10 17:30:12 +02:00
meta-wayland-pointer.c wayland: Rename cursor role types 2018-06-15 19:09:49 +00:00
meta-wayland-pointer.h wayland/pointer: Track lifetime of current surface 2017-06-01 12:46:32 +08:00
meta-wayland-popup.c Stop using MetaScreen where it is unnecessary 2018-07-06 19:47:16 +02:00
meta-wayland-popup.h wayland: Add 'MetaWaylandPopupSurface' bridge between popup and surface 2016-05-01 21:11:27 +08:00
meta-wayland-private.h wayland-private: Make display_name non-const 2018-07-31 23:40:01 +02:00
meta-wayland-region.c wayland: Make the MetaWaylandRegion type opaque 2014-10-07 20:44:19 -07:00
meta-wayland-region.h wayland: Make the MetaWaylandRegion type opaque 2014-10-07 20:44:19 -07:00
meta-wayland-seat.c wayland: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland-seat.h wayland: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland-shell-surface.c wayland: Define abstract role types as actually abstract 2018-02-23 19:07:49 +08:00
meta-wayland-shell-surface.h wayland: Use helper to set shell surface window 2018-02-23 18:57:50 +08:00
meta-wayland-subsurface.c wayland: Handle get_subsurface() with a role-less parent surface 2018-06-08 17:31:25 +02:00
meta-wayland-subsurface.h wayland: Push actor state instead of itself pulling 2018-02-23 18:57:47 +08:00
meta-wayland-surface.c Stop using MetaScreen where it is unnecessary 2018-07-06 19:47:16 +02:00
meta-wayland-surface.h wayland: Refactor surface actor into MetaWaylandActorSurface 2018-04-23 21:31:19 +02:00
meta-wayland-tablet-cursor-surface.c wayland: Rename cursor role types 2018-06-15 19:09:49 +00:00
meta-wayland-tablet-cursor-surface.h wayland: Rename cursor role types 2018-06-15 19:09:49 +00:00
meta-wayland-tablet-manager.c wayland: Add pointer from MetaWaylandTabletSeat to MetaWaylandSeat 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-manager.h wayland: Add methods to update the position of different tools' cursors 2016-05-03 18:17:01 +02:00
meta-wayland-tablet-pad-group.c wayland: Clean up MetaWaylandTabletPadGroup 2017-02-10 20:11:19 +01:00
meta-wayland-tablet-pad-group.h wayland: Export function to tell whether a button belongs to a pad group 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-pad-ring.c wayland: fix copy/pasto sending tool removed on rings/strips 2017-02-07 14:04:52 +01:00
meta-wayland-tablet-pad-ring.h wayland: Add method to relate a pad ring to its group 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-pad-strip.c wayland: fix copy/pasto sending tool removed on rings/strips 2017-02-07 14:04:52 +01:00
meta-wayland-tablet-pad-strip.h wayland: Add method to relate a pad strip to its group 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-pad.c wayland: Handle NULL event node/vendor/product on tablet methods 2018-02-09 13:39:15 +01:00
meta-wayland-tablet-pad.h wayland: Move strips/rings management back to MetaWaylandTabletPad 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-seat.c wayland: Use clutter_input_device_is_grouped() for tablet grouping 2017-03-13 19:34:10 +01:00
meta-wayland-tablet-seat.h wayland: Add focus management to pads 2016-07-22 13:31:09 +02:00
meta-wayland-tablet-tool.c backends/cursor: Move out Xcursor functionality into own type 2018-06-15 19:09:51 +00:00
meta-wayland-tablet-tool.h backends/cursor: Move out Xcursor functionality into own type 2018-06-15 19:09:51 +00:00
meta-wayland-tablet.c wayland: Handle NULL event node/vendor/product on tablet methods 2018-02-09 13:39:15 +01:00
meta-wayland-tablet.h wayland: Remove unused list from MetaWaylandTablet 2016-05-10 17:45:04 +02:00
meta-wayland-text-input-legacy.c wayland: Make gtk-text-input "legacy" 2018-08-14 15:43:21 +00:00
meta-wayland-text-input-legacy.h wayland: Make gtk-text-input "legacy" 2018-08-14 15:43:21 +00:00
meta-wayland-text-input.c wayland: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland-text-input.h wayland: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland-touch.c Don't cast free function passed to g_clear_pointer 2018-07-31 23:40:01 +02:00
meta-wayland-touch.h wayland: Move device seat association to MetaWaylandInputDevice 2016-09-15 09:55:34 +08:00
meta-wayland-types.h wayland: Add common object for device classes 2016-09-15 09:54:55 +08:00
meta-wayland-versions.h wayland: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland-wl-shell.c wayland: Use helper to set shell surface window 2018-02-23 18:57:50 +08:00
meta-wayland-wl-shell.h wayland: Restructure surface role building blocks code 2018-02-23 18:57:40 +08:00
meta-wayland-xdg-foreign.c wayland/xdg-foreign: Fix child surface validation check 2018-05-07 19:16:40 +00:00
meta-wayland-xdg-foreign.h wayland: Add support for the xdg-foreign protocol 2016-08-22 21:03:41 +08:00
meta-wayland-xdg-shell.c wayland: Compare geometries after chaining up 2018-05-18 13:09:10 +00:00
meta-wayland-xdg-shell.h wayland: Add support for stable xdg-shell 2018-02-23 18:57:53 +08:00
meta-wayland.c wayland: Implement text-input from wayland-protocols 2018-08-14 15:43:21 +00:00
meta-wayland.h wayland: Notify actively of xwayland window/surface associations 2018-04-23 21:31:19 +02:00
meta-window-wayland.c window/wayland: Always update monitor for non-user ops 2018-07-24 10:44:49 +02:00
meta-window-wayland.h wayland: Add function to query if window needs move or resize 2018-04-25 21:55:05 -03:00
meta-window-xwayland.c xwayland: add _XWAYLAND_MAY_GRAB_KEYBOARD property 2017-12-18 13:15:13 +01:00
meta-window-xwayland.h xwayland: Add MetaWindowXwayland 2017-12-18 13:15:09 +01:00
meta-xwayland-grab-keyboard.c wayland: Clean up xwayland grabs even if surface is gone 2018-08-06 11:22:51 +00:00
meta-xwayland-grab-keyboard.h wayland: Add Xwayland grab keyboard support 2017-12-18 13:15:20 +01:00
meta-xwayland-private.h xwayland: Destroy selection bridge windows before closing X11 display 2018-07-06 19:47:16 +02:00
meta-xwayland-selection-private.h wayland: Make MetaWaylandDataSource ownership protocol specific 2015-06-30 11:23:40 +08:00
meta-xwayland-selection.c Don't cast free function passed to g_clear_pointer 2018-07-31 23:40:01 +02:00
meta-xwayland.c xwayland: Destroy selection bridge windows before closing X11 display 2018-07-06 19:47:16 +02:00
meta-xwayland.h wayland: Notify actively of xwayland window/surface associations 2018-04-23 21:31:19 +02:00