diff options
author | r-c-f <ryan.farley@gmx.com> | 2020-04-14 05:12:48 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-14 12:12:48 +0200 |
commit | f679895c77c235161f698071009b70ef7af39494 (patch) | |
tree | c926788df8102dba964d5491b65f4d7db5e17334 | |
parent | 0281b58d2fced97644b1c4a8ca169998049d36b0 (diff) |
seat: add check for NULL keyboard
Check for a NULL keyboard_state.keyboard value in
seat_client_create_keyboard() before trying to use it, as is done in
other functions like seat_client_send_repeat_info(). Prevents a segfault
in certain situations on keyboard removal, as seen in the sway issue.
Closes: https://github.com/swaywm/sway/issues/5205
Closes: https://github.com/swaywm/wlroots/issues/2073
-rw-r--r-- | types/seat/wlr_seat_keyboard.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/types/seat/wlr_seat_keyboard.c b/types/seat/wlr_seat_keyboard.c index 1e567ba1..bfd6fc43 100644 --- a/types/seat/wlr_seat_keyboard.c +++ b/types/seat/wlr_seat_keyboard.c @@ -411,6 +411,9 @@ void seat_client_create_keyboard(struct wlr_seat_client *seat_client, wl_list_insert(&seat_client->keyboards, wl_resource_get_link(resource)); struct wlr_keyboard *keyboard = seat_client->seat->keyboard_state.keyboard; + if (keyboard == NULL) { + return; + } seat_client_send_keymap(seat_client, keyboard); seat_client_send_repeat_info(seat_client, keyboard); |