summaryrefslogtreecommitdiffstats
path: root/meta-agl-lxc/recipes-graphics/wayland/wayland-ivi-extension/0001-Fix-NULL-pointer-exception-in-case-of-no-input-devic.patch
blob: 095a25c9a90ef9499386b6488e12dbf911fad701 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
From b1e5973764cc42aee113fcf82249d7dd74de4131 Mon Sep 17 00:00:00 2001
From: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>
Date: Thu, 7 Oct 2021 21:07:37 +0900
Subject: [PATCH] Fix NULL pointer exception in case of no input device

When weston with wayland-ivi-extension run without input device,
that crash by NULL access at setup_input_focus function.
In this case, st_focus->seat_ctx is NULL pointer, but it use
without NULL check in this function.

This patch add NULL check for st_focus->seat_ctx.

Signed-off-by: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>
---
 .../src/ivi-input-controller.c                | 24 ++++++++++---------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c b/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
index a0bfc48..e5f2e1d 100644
--- a/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
+++ b/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
@@ -1071,17 +1071,19 @@ setup_input_focus(struct input_context *ctx, uint32_t surface,
     if (NULL != surf) {
         wl_list_for_each(st_focus, &surf->accepted_seat_list, link) {
             ctx_seat = st_focus->seat_ctx;
-            if (device & ILM_INPUT_DEVICE_POINTER) {
-                input_ctrl_ptr_set_focus_surf(ctx_seat, surf, enabled);
-            }
-            if (device & ILM_INPUT_DEVICE_KEYBOARD) {
-                input_ctrl_kbd_set_focus_surf(ctx_seat, surf, enabled);
-            }
-            if (device & ILM_INPUT_DEVICE_TOUCH) {
-                /*Touch focus cannot be forced to a particular surface.
-                 * Preserve the old behaviour by sending it to controller.
-                 * TODO: Should we just remove focus setting for touch?*/
-                send_input_focus(ctx, surf, device, enabled);
+            if (ctx_seat != NULL) {
+                if (device & ILM_INPUT_DEVICE_POINTER) {
+                    input_ctrl_ptr_set_focus_surf(ctx_seat, surf, enabled);
+                }
+                if (device & ILM_INPUT_DEVICE_KEYBOARD) {
+                    input_ctrl_kbd_set_focus_surf(ctx_seat, surf, enabled);
+                }
+                if (device & ILM_INPUT_DEVICE_TOUCH) {
+                    /*Touch focus cannot be forced to a particular surface.
+                     * Preserve the old behaviour by sending it to controller.
+                     * TODO: Should we just remove focus setting for touch?*/
+                    send_input_focus(ctx, surf, device, enabled);
+                }
             }
         }
     }
-- 
2.25.1