diff options
Diffstat (limited to 'recipes-graphics/wayland/weston/0019-xwayland-Fix-crash-when-run-with-no-input-device.patch')
-rw-r--r-- | recipes-graphics/wayland/weston/0019-xwayland-Fix-crash-when-run-with-no-input-device.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/recipes-graphics/wayland/weston/0019-xwayland-Fix-crash-when-run-with-no-input-device.patch b/recipes-graphics/wayland/weston/0019-xwayland-Fix-crash-when-run-with-no-input-device.patch new file mode 100644 index 00000000..1304cef2 --- /dev/null +++ b/recipes-graphics/wayland/weston/0019-xwayland-Fix-crash-when-run-with-no-input-device.patch | |||
@@ -0,0 +1,45 @@ | |||
1 | From 60f8817f371123b9c36b3ff1120eec1e8f9e3d10 Mon Sep 17 00:00:00 2001 | ||
2 | From: Tom Hochstein <tom.hochstein@nxp.com> | ||
3 | Date: Mon, 31 Oct 2016 19:21:58 -0500 | ||
4 | Subject: [PATCH weston] xwayland: Fix crash when run with no input device | ||
5 | |||
6 | Starting an xterm with no input device led to a crash | ||
7 | because weston_wm_pick_seat() was returning garbage and | ||
8 | weston_wm_selection_init() was trying to use the garbage. | ||
9 | |||
10 | Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> | ||
11 | --- | ||
12 | xwayland/selection.c | 10 +++++++--- | ||
13 | xwayland/window-manager.c | 6 ++++-- | ||
14 | 2 files changed, 11 insertions(+), 5 deletions(-) | ||
15 | |||
16 | Index: weston-1.11.0/xwayland/selection.c | ||
17 | =================================================================== | ||
18 | --- weston-1.11.0.orig/xwayland/selection.c 2016-05-19 16:36:04.000000000 -0500 | ||
19 | +++ weston-1.11.0/xwayland/selection.c 2016-11-01 14:32:48.000000000 -0500 | ||
20 | @@ -708,6 +708,8 @@ | ||
21 | wm->atom.clipboard, mask); | ||
22 | |||
23 | seat = weston_wm_pick_seat(wm); | ||
24 | + if (seat != NULL) | ||
25 | + return; | ||
26 | wm->selection_listener.notify = weston_wm_set_selection; | ||
27 | wl_signal_add(&seat->selection_signal, &wm->selection_listener); | ||
28 | |||
29 | Index: weston-1.11.0/xwayland/window-manager.c | ||
30 | =================================================================== | ||
31 | --- weston-1.11.0.orig/xwayland/window-manager.c 2016-05-19 16:36:04.000000000 -0500 | ||
32 | +++ weston-1.11.0/xwayland/window-manager.c 2016-11-01 11:47:14.549606964 -0500 | ||
33 | @@ -1303,8 +1303,10 @@ | ||
34 | struct weston_seat * | ||
35 | weston_wm_pick_seat(struct weston_wm *wm) | ||
36 | { | ||
37 | - return container_of(wm->server->compositor->seat_list.next, | ||
38 | - struct weston_seat, link); | ||
39 | + struct wl_list *seats = wm->server->compositor->seat_list.next; | ||
40 | + if (wl_list_empty(seats)) | ||
41 | + return NULL; | ||
42 | + return container_of(seats, struct weston_seat, link); | ||
43 | } | ||
44 | |||
45 | static struct weston_seat * | ||