diff --git a/protocol/virtual-keyboard-unstable-v1.xml b/protocol/virtual-keyboard-unstable-v1.xml index d9c8464ca..a888e5f87 100644 --- a/protocol/virtual-keyboard-unstable-v1.xml +++ b/protocol/virtual-keyboard-unstable-v1.xml @@ -47,6 +47,7 @@ + diff --git a/types/wlr_virtual_keyboard_v1.c b/types/wlr_virtual_keyboard_v1.c index 465b97dd3..03838cff3 100644 --- a/types/wlr_virtual_keyboard_v1.c +++ b/types/wlr_virtual_keyboard_v1.c @@ -44,6 +44,13 @@ static void virtual_keyboard_keymap(struct wl_client *client, return; } + if (!wl_keyboard_keymap_format_is_valid(format, 1)) { + wl_resource_post_error(resource, + ZWP_VIRTUAL_KEYBOARD_V1_ERROR_INVALID_KEYMAP_FORMAT, + "Invalid keymap format"); + return; + } + struct xkb_context *context = xkb_context_new(XKB_CONTEXT_NO_FLAGS); if (!context) { goto context_fail;