xwayland: Fix crash when run with no input device
Starting an xterm with no input device led to a crash because weston_wm_pick_seat() was returning garbage and weston_wm_selection_init() was trying to use the garbage. Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
This commit is contained in:
parent
61beda653b
commit
e7fff215ad
@ -709,6 +709,8 @@ weston_wm_selection_init(struct weston_wm *wm)
|
||||
wm->atom.clipboard, mask);
|
||||
|
||||
seat = weston_wm_pick_seat(wm);
|
||||
if (seat == NULL)
|
||||
return;
|
||||
wm->selection_listener.notify = weston_wm_set_selection;
|
||||
wl_signal_add(&seat->selection_signal, &wm->selection_listener);
|
||||
|
||||
|
@ -1306,8 +1306,10 @@ weston_wm_handle_reparent_notify(struct weston_wm *wm, xcb_generic_event_t *even
|
||||
struct weston_seat *
|
||||
weston_wm_pick_seat(struct weston_wm *wm)
|
||||
{
|
||||
return container_of(wm->server->compositor->seat_list.next,
|
||||
struct weston_seat, link);
|
||||
struct wl_list *seats = wm->server->compositor->seat_list.next;
|
||||
if (wl_list_empty(seats))
|
||||
return NULL;
|
||||
return container_of(seats, struct weston_seat, link);
|
||||
}
|
||||
|
||||
static struct weston_seat *
|
||||
|
Loading…
x
Reference in New Issue
Block a user