Weston commit 76829fc4eaea329d2a525c3978271e13bd76c078 (and similar commits for other compositors) protects the compositor's keyboard mapping from client damage by duplicating the keymap for every client.
On some systems there are other potential fixes for this - such as using sealed memfds on linux - but we can't use them since essentially all client code anywhere has mapped the keyboard map with a MAP_SHARED mmap() call.
While we can't break years worth of code, we can require any future clients to use MAP_PRIVATE if they use a seat version above 6.
If a compositor can't use sealing or a similar facility, it should still protect itself with copied keymaps, but clients must always assume shared mapping of a keymap will fail.
905c0a3 protocol: Bump seat to version 7 and require keymaps be private
protocol/wayland.xml | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)