From f679895c77c235161f698071009b70ef7af39494 Mon Sep 17 00:00:00 2001 From: r-c-f Date: Tue, 14 Apr 2020 05:12:48 -0500 Subject: [PATCH] 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 --- types/seat/wlr_seat_keyboard.c | 3 +++ 1 file changed, 3 insertions(+) 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);