From 3334d11adc926c0f6d86afc4897117d5559036f5 Mon Sep 17 00:00:00 2001 From: Paul Riou Date: Sun, 24 Nov 2019 20:41:18 +0000 Subject: [PATCH] input: seat: Fix seat device list not initialised before use When being created, non first seats would get through the list of devices without the list being first initialised -> segfault. Issue introduced with ab0248a54564b2f644b6fb367f9eb44fe0bf5f3c Fixes #4750: Crash when reloading Sway with multiple seats configured --- sway/input/seat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sway/input/seat.c b/sway/input/seat.c index fb3e68ee..bc72ff0c 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c @@ -494,6 +494,8 @@ struct sway_seat *seat_create(const char *seat_name) { // init the focus stack wl_list_init(&seat->focus_stack); + wl_list_init(&seat->devices); + root_for_each_workspace(collect_focus_workspace_iter, seat); root_for_each_container(collect_focus_container_iter, seat); @@ -526,7 +528,6 @@ struct sway_seat *seat_create(const char *seat_name) { seat->request_set_primary_selection.notify = handle_request_set_primary_selection; - wl_list_init(&seat->devices); wl_list_init(&seat->keyboard_groups); wl_list_insert(&server.input->seats, &seat->link);